Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt4 + Python3. QComboBox не хочет генерировать сигнал! [RSS Feed]

#1 Ноя. 27, 2011 18:02:40

Пытон
От:
Зарегистрирован: 2011-11-27
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4 + Python3. QComboBox не хочет генерировать сигнал!

Или не хочет реагировать на сигнал. Не знаю уже кто чего не хочет.

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

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_())
Почему событие нажатие на кнопку отрабатывается, а смена значения в комбобоксе нет?
Я рыдаю просто! Как ни начнёшь изучать что-нибудь, так встрянешь обязательно на какой-нибудь полной ерунде.
Помогите, люди добрые…



Офлайн

#2 Ноя. 27, 2011 20:13:24

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2757
Репутация: +  184  -
Профиль   Отправить e-mail  

PyQt4 + Python3. QComboBox не хочет генерировать сигнал!

> QtCore.QObject.connect(form.comboBox, QtCore.SIGNAL(“currentIndexChanged()”), byaka)

Нет сигнала currentIndexChanged() есть currentIndexChanged(int).



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Ноя. 27, 2011 20:15:26

Studentik
От:
Зарегистрирован: 2009-12-26
Сообщения: 99
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4 + Python3. QComboBox не хочет генерировать сигнал!

form.comboBox.currentIndexChanged[int].connect(byaka)
form.pushButton.clicked.connect(byaka)



Офлайн

#4 Ноя. 28, 2011 03:47:44

Пытон
От:
Зарегистрирован: 2011-11-27
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4 + Python3. QComboBox не хочет генерировать сигнал!

Агромадное спасибо всем!

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

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



Офлайн

#5 Ноя. 28, 2011 10:02:52

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2757
Репутация: +  184  -
Профиль   Отправить e-mail  

PyQt4 + Python3. QComboBox не хочет генерировать сигнал!

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

Да это индекс, он передаётся слоту (в твоём случае это byaka).



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

  • Начало
  • » GUI
  • » PyQt4 + Python3. QComboBox не хочет генерировать сигнал![RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version