Найти - Пользователи
Полная версия: PyQt4 + Python3. QComboBox не хочет генерировать сигнал!
Начало » GUI » PyQt4 + Python3. QComboBox не хочет генерировать сигнал!
1
Пытон
Или не хочет реагировать на сигнал. Не знаю уже кто чего не хочет.

Оу! А где у вас кнопка вложить файл??? Как я должен показывать текст своей программы? Прям в сообщение впихивать? Ну, держите:

ui - файл описывающий форму
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>forma</class>
<widget class="QMainWindow" name="forma">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QComboBox" name="comboBox">
<property name="geometry">
<rect>
<x>70</x>
<y>110</y>
<width>651</width>
<height>22</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>285</x>
<y>190</y>
<width>191</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>350</x>
<y>370</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
python - программа
from PyQt4 import QtCore, QtGui, uic
import sys

def byaka():
form.label.setText(form.comboBox.currentText())
#form.label.setText("Я злой как чёрт!")

app = QtGui.QApplication(sys.argv)
form = uic.loadUi("gadost.ui")

kaka = ["one", "two", "three", "four"]
for i in kaka:
form.comboBox.addItem(i)

QtCore.QObject.connect(form.comboBox, QtCore.SIGNAL("currentIndexChanged()"), byaka)
QtCore.QObject.connect(form.pushButton, QtCore.SIGNAL("clicked()"), byaka)

form.show()
sys.exit(app.exec_())
Почему событие нажатие на кнопку отрабатывается, а смена значения в комбобоксе нет?
Я рыдаю просто! Как ни начнёшь изучать что-нибудь, так встрянешь обязательно на какой-нибудь полной ерунде.
Помогите, люди добрые…
Rodegast
> QtCore.QObject.connect(form.comboBox, QtCore.SIGNAL(“currentIndexChanged()”), byaka)

Нет сигнала currentIndexChanged() есть currentIndexChanged(int).
Studentik
form.comboBox.currentIndexChanged[int].connect(byaka)
form.pushButton.clicked.connect(byaka)
Пытон
Агромадное спасибо всем!

Вечером дома попробую. Видел в QDesigner'е, что сигнал currentIndexChanged чего-то там вместе с какими-то int и QString написан, но не понял что это да как это, и причём тут эти типы данных. А, оказывается, вон оно как надо!

Кстати, вариант написания кода от Studentik мне нравится больше!
Только я не совсем понимаю, что этот int тут значит? Кому этот int передаётся? Что он хранит? Индекс в комбобоксе? А если туда QString вписать, то что будет?
Rodegast
> Только я не совсем понимаю, что этот int тут значит? Кому этот int передаётся? Что он хранит? Индекс в комбобоксе?

Да это индекс, он передаётся слоту (в твоём случае это byaka).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB