Форум сайта python.su
Здравствуйте, помогите пожалуйста с таким вопросом:
есть QListWidget и сигнал. для начала currentRowChanged(int)
self.listView = QtGui.QListWidget(self.centralwidget)
...
QtCore.QObject.connect(self.ui.listView,QtCore.SIGNAL("currentRowChanged(int)"), self.print_id)
...
def print_id(self):
print(int)
QtCore.QObject.connect(self.ui.listView,QtCore.SIGNAL("itemDoubleClicked()"), self.print_id)
void QListWidget::itemDoubleClicked ( QListWidgetItem * item ) [signal]
This signal is emitted with the specified item when a mouse button is double clicked on an item in the widget.
QtCore.QObject.connect(self.ui.listView,QtCore.SIGNAL("currentRowChanged(int)"), self.ui.label, QtCore.SLOT("setText(int)"))
Офлайн
про int:
def print_id(self, currentRow):
print(self.item(currentRow).text())
def mydoubleckickhandler(self, item):
print("Double ckicked")
self.ui.listview.itemDoubleCkicked.connect(mydoubleckickhandler)
Офлайн
StudentikЭто как ты такое провернул?)) и как это вообще называется? это вид связки слота и сигнала такой? т.е. сигнала и функции? а itemDoubleClicked в роли чего здесь выступает? в роли события?
про doublickick
self.ui.listview.itemDoubleClicked.connect(mydoubleckickhandler)
def print_id(self, currentRow):
print(self.ui.listView.item(currentRow).text())
QtCore.QObject.connect(self.ui.listView,QtCore.SIGNAL("currentRowChanged(int)"), self.print_id(int))
Офлайн
учите мат. часть. unexpected indent - это отступ где-то неправильный. И не надо в аргумент функции item подсовывать слово int, что в питоне означает тип int - туда надо подсовывать номер строчки.
Офлайн
Спасибо))
Было бы по чему учить.. на русском все “учебники” ограничиваются мегапрогами типа Hello World..
изучаю потихоньку Rapid GUI Programming with Python and Qt..
Отредактировано (Фев. 13, 2011 13:45:37)
Офлайн
Доброго всем дня, недавно начал изучать PyQt.
Сегодня упёрся в тупик с QListWiget. В общем мне надо что бы по нажатии на один из QListWigetItem - btn01 или btn02, справа отображался соответствующий импортируемый класс(виджет) для btn01 > wid01 и btn02 > wid02.
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore import modules.pages class Window(QtGui.QDialog): def __init__(self, *args): QtGui.QDialog.__init__(self, *args) # Импортируемые классы из pages.py wid01 = modules.pages.Widget01() wid02 = modules.pages.Widget02() # ListWiget listWidget = QtGui.QListWidget() listWidget.setViewMode(QtGui.QListView.IconMode) listWidget.setMaximumWidth(128) listWidget.setMovement(QtGui.QListView.Static) #Начинка ListWiget btn01 = QtGui.QListWidgetItem("Button #1", listWidget) btn02 = QtGui.QListWidgetItem("Button #2", listWidget) layout = QtGui.QHBoxLayout() layout.addWidget(listWidget) layout.addStretch() self.setLayout(layout) if __name__=='__main__': app = QtGui.QApplication(sys.argv) wind = Window() wind.resize(400, 300) wind.show() sys.exit(app.exec_())
Отредактировано Levitan (Ноя. 18, 2012 12:12:49)
Офлайн
Как это?
basist
Спасибо))Было бы по чему учить.. на русском все “учебники” ограничиваются мегапрогами типа Hello World.. изучаю потихоньку Rapid GUI Programming with Python and Qt..
Отредактировано 4kpt (Ноя. 18, 2012 13:41:34)
Офлайн
Сам спросил сам отвечаю:
Содержимое QListWidet и QStackedWidget объединяется сигнал слотом:
QtCore.QObject.connect(self.listWidget, QtCore.SIGNAL("currentRowChanged(int)"), self.stackedWidget, QtCore.SLOT("setCurrentIndex(int)"))
Офлайн