Найти - Пользователи
Полная версия: помогите pyqt SIGNAL clicked()
Начало » GUI » помогите pyqt SIGNAL clicked()
1
VovanNone
Сильно не пинайте, только начал изучать пайтон и pyQT.
хочу чтоб по клику на кнопку Add текст из lineEdit записывался строкой в ListWidget.
но он добавляется СРАЗУ при генерации приложения, ДО клика мышью…
По клику на exit_but как и запланировано происходит выход.
Спасибо!
вот код
[/
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
class Experiment(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.setWindowTitle('Experimental_app')
        self.resize(600,600)
        text_field = QtGui.QLineEdit(self)
        text_field.setGeometry(100,20,150,40)
        text_field.setText('bla') #this shows that with opening the appWindow
                                    # text was copied without clicking
        spisok = QtGui.QListWidget(self)
        spisok.setGeometry(70,100,300,300)
        spisok.addItem('da da da') #this shows that spisok.addItem is workable code
        add_but = QtGui.QPushButton('add',self)
        add_but.setGeometry(260,20,30,30)
        exit_but = QtGui.QPushButton('exit',self)
       exit_but.setGeometry(260,62,30,30)
        def Adding():
            text_field.selectAll()
            global x
            x = text_field.text()
            spisok.addItem(str(x))
        self.connect(add_but,QtCore.SIGNAL('clicked()'),
            QtCore.SLOT(Adding()))
        self.connect(exit_but,QtCore.SIGNAL('clicked()'),
            QtGui.qApp,QtCore.SLOT('quit()'))
app = QtGui.QApplication(sys.argv)
ew = Experiment()
ew.show()
sys.exit(app.exec_())]
py.user.next
Расставь отступы с помощью тега code.

[code python][/code]
VovanNone
отступы расставил.
vrabey
VovanNone
отступы расставил
тот код который ты прислал на форум ты скопируй себе - он же не работает

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
class Experiment(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setWindowTitle('Experimental_app')
        self.resize(600, 600)
        self.text_field = QtGui.QLineEdit(self)
        self.text_field.setGeometry(100, 20, 150, 40)
        self.spisok = QtGui.QListWidget(self)
        self.spisok.setGeometry(70, 100, 300, 300)
        self.spisok.addItem(
            'da da da')  # это выпольняется сразу
        self.add_but = QtGui.QPushButton('add', self)
        self.add_but.setGeometry(260, 20, 80, 30)
        self.connect(self.add_but, QtCore.SIGNAL('clicked()'),
                     self.Adding)
        self.exit_but = QtGui.QPushButton('exit', self)
        self.exit_but.setGeometry(260, 62, 80, 30)
        self.connect(self.exit_but, QtCore.SIGNAL('clicked()'),
                     QtGui.qApp, QtCore.SLOT('quit()'))
    def Adding(self):
        '''
        метод выполняется при нажатии add_but
        :return:
        '''
        text = self.text_field.text()  # читаем текст с LineEdit
        text = unicode(text)           # если текст - кирилица
        self.spisok.addItem(text)      # и добавляем его в ListWidget
        self.text_field.selectAll()    # выделяем
        self.text_field.setFocus()     # установливаем фокус
app = QtGui.QApplication(sys.argv)
ew = Experiment()
ew.show()
sys.exit(app.exec_())

люди скопируют твой код и помогут если он правильно отформатирован
и можно занятся логикой а не расследовать отступы
не пользуйся табами
я не спец но - global здесь не нужен и наверное нигде не нужен
абсолютное позиционирование виджетов - не удобно
def Adding() …
def Adding(self)…
метод отличается от функции …

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