Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Digan от Март 05, 2011, 21:13



Название: QTableWidget - Вызов окна диалога
Отправлено: Digan от Март 05, 2011, 21:13
Всем привет.

Как сделать, чтобы при двойном щелчке мыши по определенной ячейке в QTableWidget появлялось заранее приготовленное окно диалога?

Знаю, что есть метод setEditTriggers(), но как сделать так чтобы окно диалога появлялось только по двойном щелчку ячейки имеющей только определенное содержимое?
К примеру в n-ой строке первого столбца стоит значение symtab.

Заранее спасибо.


Название: Re: QTableWidget - Вызов окна диалога
Отправлено: Etud от Март 05, 2011, 21:34
Содержимое ячейки (т.е. текст) нуждается в редактировании ?

Диалог сделать то не проблема ! Нужно уточнить сначала...


Название: Re: QTableWidget - Вызов окна диалога
Отправлено: Disaron от Март 05, 2011, 21:53
Код
C++ (Qt)
void itemDoubleClicked ( QTableWidgetItem * item ) [signal]
Код
C++ (Qt)
connect(.....)
 
void slotItemDoubleClicked(QTableWidgetItem * item)
{
   if (item->data()==...) {
   ......
   }
}


Название: Re: QTableWidget - Вызов окна диалога
Отправлено: Digan от Март 05, 2011, 21:57
Благодарю, но я эту проблему решил по другому. Перешел к слоту cellDoubleClicked(int, int) и написал такой код.

Код
C++ (Qt)
void MainWindow::on_tableWidget_3_cellDoubleClicked(int row, int column)
{
   if(column == 0)
   {
       if(ui->tableWidget_3->item(row, column)->text() == ".symtab")
       {
       }
   }
}
 
Содержимое ячейки не нужно было редактировать.


Название: Re: QTableWidget - Вызов окна диалога
Отправлено: Etud от Март 05, 2011, 23:05
Цитировать
Содержимое ячейки не нужно было редактировать.

Отключил редактирование ячейки ?


Название: Re: QTableWidget - Вызов окна диалога
Отправлено: Digan от Март 06, 2011, 01:00
Отключил редактирование ячейки ?


Да. Отключил редактирование всей таблицы.
Код
C++ (Qt)
ui->tableWidget_3->setEditTriggers(QAbstractItemView::NoEditTriggers);