Russian Qt Forum

Qt => Вопросы новичков => Тема начата: CJ1 от Июнь 19, 2012, 07:37



Название: Поиск по QTableWidget
Отправлено: CJ1 от Июнь 19, 2012, 07:37
Нужно сделать поиск по QTableWidget.

Я думаю сделать вот так, создам главное окно, маленькое, в нем строку ввода.
В QlineEdit будут вводится символы и после каждого нажатия, будет происходить цикл читающий всю таблицу

Код:
                           if (ui->tableWidget->item(i,j)->text().startsWith(SearchText)){
                               ui->tableWidget->setCurrentItem(ui->tableWidget->item(i,j),QItemSelectionModel::Select);
                           }


Я думаю вот так, а у вас есть еще какаянибудь идея получше?


Название: Re: Поиск по QTableWidget
Отправлено: CJ1 от Июнь 19, 2012, 08:51
Оказывается есть findItems


Название: Re: Поиск по QTableWidget
Отправлено: CJ1 от Июнь 19, 2012, 09:22
Люди, нужна помощь, делаю вобщем поиск.
Мне нужно чтобы когда я на lineedit нажимал кнопки, в фокусе была еще и таблвиджет , чтобы она могла синим выделятся


Название: Re: Поиск по QTableWidget
Отправлено: mutineer от Июнь 19, 2012, 10:16
Сомневаюсь что у тебя получится два виджета держать в фокусе. Это противоречит идее фокуса, имхо. Выделяй другим способом


Название: Re: Поиск по QTableWidget
Отправлено: shirushizo от Июнь 19, 2012, 10:34
У QTableWidgetItem'а есть методы:
Код:
void QTableWidgetItem::setBackground ( const QBrush & brush )
void QTableWidgetItem::setForeground ( const QBrush & brush )
void QTableWidgetItem::setFont ( const QFont & font )
При их помощи можно установить цвет и стиль фона, цвет и стиль текста, шрифт - соответственно. Можно использовать их для выделения конкретных элементов.
Так же есть метод
Код:
void QTableWidgetItem::setData ( int role, const QVariant & value ) [virtual]

Который позволяет сделать то же самое, если использовать следующие роли из перечисления Qt::ItemDataRole:
Qt::FontRoleThe font used for items rendered with the default delegate. (QFont)
Qt::TextAlignmentRoleThe alignment of the text for items rendered with the default delegate. (Qt::AlignmentFlag)
Qt::BackgroundRoleThe background brush used for items rendered with the default delegate. (QBrush)
Qt::BackgroundColorRoleThis role is obsolete. Use BackgroundRole instead.
Qt::ForegroundRoleThe foreground brush (text color, typically) used for items rendered with the default delegate. (QBrush)
Qt::TextColorRole   This role is obsolete. Use ForegroundRole instead.

А по поводу одновременного фокуса на 2х элементах согласен с mutineer. Не бывает такого.

Дерзайте!


Название: Re: Поиск по QTableWidget
Отправлено: CJ1 от Июнь 19, 2012, 12:07
Сделал! Спасибо!