Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Mindtraveller от Мая 11, 2007, 19:07



Название: Два вопроса о простых вещах (QPushButton, QTableWidget)
Отправлено: Mindtraveller от Мая 11, 2007, 19:07
Доброе время суток. Использую QT 4.2.2.
В ходе разработки (я в Кьюте начинающий), возникла пара вопросов по простым вещам.

1)
Задача: сделать адекватную кнопочку с иконкой и надписью.
Мой вариант: QPushButton, устанавливаю текст и иконку. Как только устанавливаю иконку, надпись и иконка тут же съезжают влево. Т.е. при расширении кнопки вся надпись оказывается слева, а справа - пустое пространство. Это некрасиво.
Вопрос: как сделать кнопку с надписью и иконкой с выравниванием по центру кнопки?

2)
Задача: отредактировать набор свойств некой единицы. На выходе - виджет, аналог Property Editor из Дизайнера. Две колоки, справа - набор редакторов по щелчку мышкой (обычный, комбо, диалог).
Мой вариант: использовал QTableWidget, пытался найти настройки, при помощи которых во второй колонке можно бы было сделать редакторы. Обнаружил, что для этого требуется делать наследование объектов от QWidgetItem, либо от других классов... В общем, довольно геморройно.
Необходимое отступление: В VCL есть подобный класс. Там для каждой строки ввода можно задать тип редактора (обычный, combo, либо вызов диалога). Здесь же ситуация такова:
а) Использование наследования в данном случае крайне неудобно. Потому что приходится наследоваться, создавать лишний по идее класс (всё это должно быть в framework-e, я-юзер, должен только устанавливать обработчик и свойства).
б) Наследование ещё более неудобно, учитывая тот факт что на выходе Дизайнера - header с описанием класса. Каждый раз он генерится заново. Значит в него я свой наследуемый класс вписать не могу. Т.е. это фактически лишняя пара .cpp/.h, обслуживающая исключительно виджет редактирования свойств. Считаю данный способ очень неудобным.
Вопрос: Какой наиболее простой/удобный способ решения этой задачи?


Название: Два вопроса о простых вещах (QPushButton, QTableWidget)
Отправлено: Racheengel от Мая 12, 2007, 14:19
для 1) попробуй setAlignment(Qt::Center).

для 2) тебе поможет Value Browser.
http://ii-system.com/soft/vbrowser/vbrowser.htm