table.cellClicked.connect(test) def test(row,col): print(row) print(col)
table.cellPressed.connect(test) def test(row,col): print(row) print(col)
def event(e): print('вошли') if e.type()== QtCore.QEvent.KeyPress: print("Нажата клавиша на клавиатуре") print("Код:", e.key(), ", текст:", e.text()) if e.key() == 16777220: #Выбор строки по Enter print('enter') elif e.key() == 16777216: #Закрытие по кнопке ESC print('exit') #self.close() return QtWidgets.QDialog.event(e)
def event(e): print('вошли') if e.type()== QtCore.QEvent.KeyPress: print("Нажата клавиша на клавиатуре") print("Код:", e.key(), ", текст:", e.text()) if e.key() == 16777220: #Выбор строки по Enter print('enter') elif e.key() == 16777216: #Закрытие по кнопке ESC print('exit') #self.close()
def FASTMENU(**kwargs): #здесь создаем окно и внутри его таблицу и прочее Dialog = QtWidgets.QDialog() table=QtWidgets.QTableWidget(parent=Dialog) #бла бла и прочее #потом событие Dialog.keyPressEvent = event def event(e): print('вошли') if e.type()== QtCore.QEvent.KeyPress: print("Нажата клавиша на клавиатуре") print("Код:", e.key(), ", текст:", e.text()) if e.key() == 16777220: #Выбор строки по Enter print('enter') elif e.key() == 16777216: #Закрытие по кнопке ESC print('exit') self.close()
def FASTMENU(**kwargs): global Dialog Dialog = QtWidgets.QDialog()
def event(e): й=5 return й
def FASTMENU(**kwargs): Dialog = QtWidgets.QDialog() table=QtWidgets.QTableWidget(parent=Dialog) def event(e): print('вошли') if e.type()== QtCore.QEvent.KeyPress: print("Нажата клавиша на клавиатуре") print("Код:", e.key(), ", текст:", e.text()) if e.key() == 16777220: #Выбор строки по Enter print('enter') rowID = table.currentIndex().row() print(rowID) elif e.key() == 16777216: #Закрытие по кнопке ESC print('exit') Dialog.close()
Ser5+Это устаревший метод работы с таблицами. Нужно разделять по MVC и делать таблицу в виде модели и представления, связанных контроллером. QTableView().
Никто так и не знает как извлекать данные из таблицы(QTableWidget)
def FASTMENU2(**kwargs): #print(*args) tek_zag = kwargs.get("zag") tek_s = kwargs.get("s") #Создаем диалоговое окно Dialog = QtWidgets.QDialog() Dialog.setWindowTitle(tek_zag) Dialog.resize(250,100) #Оставим только кнопку закрытия 'х' у диалога, то без кнопки справка Dialog.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.WindowCloseButtonHint); SPISOK = QtWidgets.QListView(parent=Dialog) mod = QtGui.QStandardItemModel(parent=Dialog) lst = tek_s for row in range(0,len(tek_s)): stroka = QtGui.QStandardItem(tek_s[row]) mod.appendRow([stroka]) #Запрет на редактирование ячеек SPISOK.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) #Зададим размеры Dialog.setFont(QtGui.QFont('Times', 13)) #сигнал q=SPISOK.clicked.connect(event) print(q) SPISOK.setModel(mod) Dialog.exec_() #Показываем окно result=555 return result def event(e): print('вошли') if e.type()== QtCore.QEvent.KeyPress: print("Нажата клавиша на клавиатуре") print("Код:", e.key(), ", текст:", e.text()) if e.key() == 16777220: #Выбор строки по Enter print('enter') ## rowID = table.currentIndex().row() #например stroka=1 ## print(rowID) elif e.key() == 16777216: #Закрытие по кнопке ESC print('exit') #Dialog.close() #return QtWidgets.QWidget.event(e) return stroka
def FASTMENU(**kwargs): tek_zag = kwargs.get("zag") tek_s = kwargs.get("s") #Создаем диалоговое окно Dialog = QtWidgets.QDialog() Dialog.setWindowTitle(tek_zag) Dialog.resize(250,100) #Оставим только кнопку закрытия 'х' у диалога, то без кнопки справка Dialog.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.WindowCloseButtonHint); #Создадим список QListView SPISOK = QtWidgets.QListView(parent=Dialog) mod = QtGui.QStandardItemModel(parent=Dialog) lst = tek_s for row in range(0,len(tek_s)): stroka = QtGui.QStandardItem(tek_s[row]) mod.appendRow([stroka]) #Запрет на редактирование строк SPISOK.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) #Зададим размеры Dialog.setFont(QtGui.QFont('Times', 13)) #сигнал #result = SPISOK.clicked.connect(vibor) #По мышке result = SPISOK.activated.connect(vibor) #По Enter print(result) SPISOK.setModel(mod) Dialog.exec_() #Показываем окно return result def vibor(index): res = format(index.data()) return res