Russian Qt Forum
Июня 07, 2025, 23:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Два вопроса о простых вещах (QPushButton, QTableWidget)  (Прочитано 4255 раз)
Mindtraveller
Гость
« : Мая 11, 2007, 19:07 »

Доброе время суток. Использую QT 4.2.2.
В ходе разработки (я в Кьюте начинающий), возникла пара вопросов по простым вещам.

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

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

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Мая 12, 2007, 14:19 »

для 1) попробуй setAlignment(Qt::Center).

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

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 1.985 секунд. Запросов: 22.