crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как сохранить Qt::AlignLeft для QLineEdit при уменьшении его размера при сдвиге сплиттера?
Steklova Olga
  опции профиля:
сообщение 2.11.2011, 16:06
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

Спасибо сказали: 5 раз(а)




Репутация:   4  


Здравствуйте! Работаю с Qt 4.7, Firebird 2.1.
У меня есть горизонтальный сплиттер splitter_Horiz, к которому подключены виджеты widget_left и widget_right.
Для widget_left установлен GridLayout (в 0-м столбце - Label'ы, в 1-м столбце - LineEdit'ы).
Есть DataWidgetMapper, к которому подключены LineEdit'ы.
В полях таблицы, установленной для модели, записаны строки до 30 символов или числа.

Когда перемещаю сплиттер влево, ширина LineEdit'ов уменьшается и строки полностью уже не помещаются.

Но при этом левое выравнивание в LineEdit'ах на глазах превращается в правое,
а мне хотелось бы сохранить левое.
Подскажите, пожалуйста, как это сделать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Steklova Olga
  опции профиля:
сообщение 29.12.2011, 11:03
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

Спасибо сказали: 5 раз(а)




Репутация:   4  


Да, конечно, BlueIceScream, Вы правы! Вы снова радуете прекрасным, толковым ответом!
С наступающим новым годом, и всего самого доброго Вам и Вашим близким! :)

Остался еще вопрос про QLineEdit.
У меня в lineEdit'ах отображаются данные mapper'а, при этом мне надо только отображать данные, редактировать их не надо. Чтобы lineEdit'ы никак не реагировали на нажатия кнопок мыши выполняю следующие действия:
    lineEdit->setReadOnly(true);
    lineEdit->setFocusPolicy(Qt::NoFocus);
    lineEdit->setContextMenuPolicy(Qt::PreventContextMenu);

Осталась не обработанной следующая ситуация. Если оператор сделает двойной клик по тексту в одном lineEdit'е, то этот текст будет выделен синим фоном, если затем он сделает двойной клик по тексту в другом lineEdit'е, то этот текст тоже будет выделен синим фоном. А мне надо, чтобы текст не выделялся.
Что для этого надо сделать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 29.12.2011, 14:29
Сообщение #3


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


Цитата(Steklova Olga @ 29.12.2011, 12:03) *
Если оператор сделает двойной клик по тексту в одном lineEdit'е, то этот текст будет выделен синим фоном, если затем он сделает двойной клик по тексту в другом lineEdit'е, то этот текст тоже будет выделен синим фоном. А мне надо, чтобы текст не выделялся.
Что для этого надо сделать?


Есть несколько путей решения:
1. Долгий - перехватывать и игнорировать определенный набор событий для соответствующего QLineEdit
2. Заменить QLineEdit на QLabel для отображения статических данных
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги


10 чел. читают эту тему (гостей: 10, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.11.2024, 15:21