I'm a bit new in PyQt4, I've been working on simple GUI which has an QDial and LCD Widget.I've used SIGNAL and SLOT technique,i.e when the QDial is changed it's value will be shown on the LCD Widget.
Similarly i want to print that LCD value in terminal everytime the QDial is changed.How am i supposed to do that?
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'mainwindow.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(610, 404)
MainWindow.setStatusTip(_fromUtf8(""))
MainWindow.setTabShape(QtGui.QTabWidget.Rounded)
self.centralWidget = QtGui.QWidget(MainWindow)
self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
self.dial_1 = QtGui.QDial(self.centralWidget)
self.dial_1.setGeometry(QtCore.QRect(390, 10, 101, 91))
font = QtGui.QFont()
font.setStrikeOut(False)
self.dial_1.setFont(font)
self.dial_1.setMouseTracking(False)
self.dial_1.setFocusPolicy(QtCore.Qt.ClickFocus)
self.dial_1.setStatusTip(_fromUtf8(""))
self.dial_1.setWhatsThis(_fromUtf8(""))
self.dial_1.setAccessibleDescription(_fromUtf8(""))
self.dial_1.setAutoFillBackground(False)
self.dial_1.setSingleStep(1)
self.dial_1.setPageStep(10)
self.dial_1.setProperty("value", 0)
self.dial_1.setSliderPosition(0)
self.dial_1.setWrapping(False)
self.dial_1.setNotchTarget(3.7)
self.dial_1.setNotchesVisible(True)
self.dial_1.setObjectName(_fromUtf8("dial_1"))
self.lcdNumber_1 = QtGui.QLCDNumber(self.centralWidget)
self.lcdNumber_1.setGeometry(QtCore.QRect(500, 40, 81, 41))
self.lcdNumber_1.setFrameShape(QtGui.QFrame.Panel)
self.lcdNumber_1.setLineWidth(2)
self.lcdNumber_1.setDigitCount(4)
self.lcdNumber_1.setSegmentStyle(QtGui.QLCDNumber.Flat)
self.lcdNumber_1.setObjectName(_fromUtf8("lcdNumber_1"))
self.label_1 = QtGui.QLabel(self.centralWidget)
self.label_1.setGeometry(QtCore.QRect(390, 100, 111, 17))
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.label_1.setFont(font)
self.label_1.setObjectName(_fromUtf8("label_1"))
self.dial_2 = QtGui.QDial(self.centralWidget)
self.dial_2.setGeometry(QtCore.QRect(390, 120, 101, 91))
self.dial_2.setFocusPolicy(QtCore.Qt.ClickFocus)
self.dial_2.setNotchesVisible(True)
self.dial_2.setObjectName(_fromUtf8("dial_2"))
self.label_2 = QtGui.QLabel(self.centralWidget)
self.label_2.setGeometry(QtCore.QRect(390, 210, 111, 17))
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.label_2.setFont(font)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.lcdNumber_2 = QtGui.QLCDNumber(self.centralWidget)
self.lcdNumber_2.setEnabled(True)
self.lcdNumber_2.setGeometry(QtCore.QRect(500, 150, 81, 41))
font = QtGui.QFont()
font.setPointSize(18)
font.setBold(True)
font.setWeight(75)
self.lcdNumber_2.setFont(font)
self.lcdNumber_2.setFrameShape(QtGui.QFrame.Panel)
self.lcdNumber_2.setFrameShadow(QtGui.QFrame.Raised)
self.lcdNumber_2.setLineWidth(2)
self.lcdNumber_2.setMidLineWidth(0)
self.lcdNumber_2.setDigitCount(4)
self.lcdNumber_2.setMode(QtGui.QLCDNumber.Dec)
self.lcdNumber_2.setSegmentStyle(QtGui.QLCDNumber.Flat)
self.lcdNumber_2.setObjectName(_fromUtf8("lcdNumber_2"))
MainWindow.setCentralWidget(self.centralWidget)
self.menuBar = QtGui.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 611, 25))
self.menuBar.setObjectName(_fromUtf8("menuBar"))
MainWindow.setMenuBar(self.menuBar)
self.mainToolBar = QtGui.QToolBar(MainWindow)
self.mainToolBar.setObjectName(_fromUtf8("mainToolBar"))
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar)
self.statusBar = QtGui.QStatusBar(MainWindow)
self.statusBar.setObjectName(_fromUtf8("statusBar"))
MainWindow.setStatusBar(self.statusBar)
self.retranslateUi(MainWindow)
QtCore.QObject.connect(self.dial_1, QtCore.SIGNAL(_fromUtf8("valueChanged(int)")), self.lcdNumber_1.display)
QtCore.QObject.connect(self.dial_2, QtCore.SIGNAL(_fromUtf8("valueChanged(int)")), self.lcdNumber_2.display)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.label_1.setText(_translate("MainWindow", "Linear Velocity", None))
self.label_2.setText(_translate("MainWindow", "Angular Velocity", None))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
You can connect own function which gets value and use print() to display it
QtCore.QObject.connect(self.dial_1, QtCore.SIGNAL(_fromUtf8("valueChanged(int)")), self.lcdNumber_1.display)
# connect own function
QtCore.QObject.connect(self.dial_1, QtCore.SIGNAL(_fromUtf8("valueChanged(int)")), self.my_function)
def my_function(self, value):
print(value)
The same with second QDial.
You can even use directly print without creating own function because print will gets value.
QtCore.QObject.connect(self.dial_1, QtCore.SIGNAL(_fromUtf8("valueChanged(int)")), print)
EDIT: as #musicamante mentioned in comment - this version
SIGNAL(..., print)
will work only in Python 3 because print in Python 2 is not function.
Or you will have to use in Python 2
from __future__ import print_function
Related
I'm trying to connect a push-button on my main window to open a new widget when I click it. But each time I run the program I get this error:
AttributeError: 'dataAcquisition' object has no attribute 'gpioButton'
I will be grateful if someone can help.
Here's my code:
from PyQt4 import QtCore, QtGui
from mainwindow import Ui_MainWindow
from gpiodialog import Ui_GPIODialog
import sys
class gpioDialog(QtGui.QDialog, Ui_GPIODialog):
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
flags = QtCore.Qt.Drawer | QtCore.Qt.WindowStaysOnTopHint
self.setWidowFlags(flags)
self.ui = Ui_GPIODialog
self.ui.setupUi(self)
self.gpioOKButton.clicked.connect(self.acceptOKButtonClicked)
def acceptOKButtonClicked(self):
self.close()
class dataAcquisition(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.gpioButton.clicked.connect(self.gpioButton_clicked)
self.popGPIO = gpioDialog()
def gpioButton_clicked(self):
self.popGPIO.show()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
MainWindow = dataAcquisition()
MainWindow.show()
sys.exit(app.exec_())
mainwindow.py code:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'mainwindow.ui'
#
# Created: Tue Oct 18 02:57:57 2016
# by: PyQt4 UI code generator 4.11.2
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(700, 600)
MainWindow.setMinimumSize(QtCore.QSize(700, 600))
MainWindow.setMaximumSize(QtCore.QSize(700, 600))
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.gpioButton = QtGui.QToolButton(self.centralwidget)
self.gpioButton.setGeometry(QtCore.QRect(20, 80, 181, 61))
self.gpioButton.setObjectName(_fromUtf8("gpioButton"))
self.procButton = QtGui.QPushButton(self.centralwidget)
self.procButton.setGeometry(QtCore.QRect(20, 180, 181, 61))
self.procButton.setObjectName(_fromUtf8("procButton"))
self.startButton = QtGui.QPushButton(self.centralwidget)
self.startButton.setEnabled(True)
self.startButton.setGeometry(QtCore.QRect(20, 360, 131, 51))
self.startButton.setObjectName(_fromUtf8("startButton"))
self.stopButton = QtGui.QPushButton(self.centralwidget)
self.stopButton.setGeometry(QtCore.QRect(190, 360, 131, 51))
self.stopButton.setObjectName(_fromUtf8("stopButton"))
self.plotButton = QtGui.QPushButton(self.centralwidget)
self.plotButton.setGeometry(QtCore.QRect(20, 460, 181, 61))
self.plotButton.setObjectName(_fromUtf8("plotButton"))
self.columnView = QtGui.QColumnView(self.centralwidget)
self.columnView.setGeometry(QtCore.QRect(340, 50, 341, 251))
self.columnView.setObjectName(_fromUtf8("columnView"))
self.label_2 = QtGui.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(280, 20, 221, 21))
font = QtGui.QFont()
font.setPointSize(15)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.saveButton = QtGui.QPushButton(self.centralwidget)
self.saveButton.setEnabled(True)
self.saveButton.setGeometry(QtCore.QRect(410, 420, 211, 31))
self.saveButton.setObjectName(_fromUtf8("saveButton"))
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 700, 27))
self.menubar.setObjectName(_fromUtf8("menubar"))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.gpioButton.setText(_translate("MainWindow", "GPIO Number of inputs", None))
self.procButton.setText(_translate("MainWindow", "Processing", None))
self.startButton.setText(_translate("MainWindow", "Start Acquiring", None))
self.stopButton.setText(_translate("MainWindow", "Stop Acquiring", None))
self.plotButton.setText(_translate("MainWindow", "Start Live Plot", None))
self.label_2.setText(_translate("MainWindow", "Data Acquisition System", None))
self.saveButton.setText(_translate("MainWindow", "Save this session\'s data", None))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
gpiodialog.py code:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'gpiodialog.ui'
#
# Created: Tue Oct 18 03:11:51 2016
# by: PyQt4 UI code generator 4.11.2
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_GPIODialog(object):
def setupUi(self, GPIODialog):
GPIODialog.setObjectName(_fromUtf8("GPIODialog"))
GPIODialog.resize(400, 300)
self.gpioOKButton = QtGui.QPushButton(GPIODialog)
self.gpioOKButton.setGeometry(QtCore.QRect(170, 240, 101, 31))
self.gpioOKButton.setObjectName(_fromUtf8("gpioOKButton"))
self.label = QtGui.QLabel(GPIODialog)
self.label.setGeometry(QtCore.QRect(90, 20, 191, 21))
font = QtGui.QFont()
font.setPointSize(13)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName(_fromUtf8("label"))
self.retranslateUi(GPIODialog)
QtCore.QMetaObject.connectSlotsByName(GPIODialog)
def retranslateUi(self, GPIODialog):
GPIODialog.setWindowTitle(_translate("GPIODialog", "Dialog", None))
self.gpioOKButton.setText(_translate("GPIODialog", "OK", None))
self.label.setText(_translate("GPIODialog", "Choose GPIO input bins", None))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
GPIODialog = QtGui.QDialog()
ui = Ui_GPIODialog()
ui.setupUi(GPIODialog)
GPIODialog.show()
sys.exit(app.exec_())
You created a separate namespace for the ui, so you would need to access the button like this:
self.ui.gpioButton.clicked.connect(self.gpioButton_clicked)
However, if you'd prefer to have all the widgets as attributes of the window, do this:
class gpioDialog(QtGui.QDialog, Ui_GPIODialog):
def __init__(self, parent=None):
super(gpioDialog, self).__init__(parent)
flags = QtCore.Qt.Drawer | QtCore.Qt.WindowStaysOnTopHint
self.setWindowFlags(flags)
self.setupUi(self)
self.gpioOKButton.clicked.connect(self.acceptOKButtonClicked)
class dataAcquisition(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(dataAcquisition, self).__init__(parent)
self.setupUi(self)
self.gpioButton.clicked.connect(self.gpioButton_clicked)
self.popGPIO = gpioDialog()
I am working with code http://pastebin.com/3JZWP14y to fix my errors in code below. I need to know the proper way to launch another widget/dialog for text entry to my list.
Below was my original code.
I have my app that displays a table, the child widget to add a row opens and closes fine but then my parent crashes. Code to parent is below. The child closes with sys.exit(app.exec_()) The child also opens the todo.p file but closes all pointers to file.
from PyQt4.QtGui import (QMainWindow, QApplication)
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import pickle as p
import sys
import addit
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def __init__(self):
#app = QApplication(sys.argv)
self.window = QMainWindow()
self.setupUi(self.window)
self.window.show()
#self.d=self.getdata()
self.d={"12345678":["do some stuff here that needs to be in a large cell to wrap text","1",1],"12343378":["do stuff","1",1]}
self.setmydata(self.d)
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(296, 478)
MainWindow.setIconSize(QtCore.QSize(0, 0))
MainWindow.setAnimated(False)
MainWindow.setTabShape(QtGui.QTabWidget.Rounded)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.tableView = QtGui.QTableWidget(self.centralwidget)
self.tableView.setGeometry(QtCore.QRect(20, 50, 261, 391))
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tableView.sizePolicy().hasHeightForWidth())
self.tableView.setSizePolicy(sizePolicy)
self.tableView.setEditTriggers(QtGui.QAbstractItemView.AllEditTriggers)
self.tableView.setDragEnabled(True)
self.tableView.setAlternatingRowColors(True)
self.tableView.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
self.tableView.setSortingEnabled(False)
self.tableView.setObjectName(_fromUtf8("tableView"))
self.pushButton = QtGui.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(20, 10, 121, 31))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.pushButton_2 = QtGui.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(160, 10, 121, 31))
self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 296, 21))
self.menubar.setObjectName(_fromUtf8("menubar"))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.pushButton.clicked.connect(lambda: self.openaddit())
def openaddit(self):
x=addit.openwindow()
print "clean"
#reload?
def createfile(self,d):
f=open('todo.d',"w")
p.dump(d,f)
f.close
def getdata(self):
if os.path.isfile('todo.p'):
print "here"
d= p.load(open('todo.p', 'r'))
else:
print "here2"
d={}
self.createfile(d)
print d,"hereeeee"
return d
def setmydata(self,d):
self.data = {}
keys=d.keys()
self.data['col1']=keys
self.data['col2']=[]
self.tableView.setRowCount(len(keys))
self.tableView.setColumnCount(2)
self.tableView.setHorizontalHeaderLabels(['SR', 'Notes'])
for i in range(0,len(keys)):
if d[keys[i]][2]==0:
continue
self.tableView.setItem(i, 0, QtGui.QTableWidgetItem(keys[i]))
self.tableView.setItem(i, 1, QtGui.QTableWidgetItem(d[keys[i]][0]))
self.pushButton = QtGui.QPushButton(self.centralwidget)
self.tableView.setRowHeight(i,100)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.pushButton.setText(_translate("MainWindow", "Add New", None))
self.pushButton_2.setText(_translate("MainWindow", "Save", None))
app = QApplication(sys.argv)
frame = Ui_MainWindow()
#frame.show()
app.exec_()
addit.openwindow() calls the below program.
import sys
from PyQt4 import QtCore, QtGui
#import numpy as np
import pickle as p
class MyQDialog(QtGui.QDialog):
def __init__(self, parent=None):
super(MyQDialog, self).__init__(parent)
## Default values
self.d={}
## Create labels and buttons
#self.setObjectName(("Dialog"))
self.resize(400, 279)
self.d ={}
self.buttonBox = QtGui.QDialogButtonBox(self)
self.buttonBox.setGeometry(QtCore.QRect(30, 240, 341, 32))
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
self.buttonBox.setObjectName(("buttonBox"))
self.lineEdit = QtGui.QLineEdit(self)
self.lineEdit.setGeometry(QtCore.QRect(40, 20, 141, 31))
self.lineEdit.setObjectName(("lineEdit"))
self.textEdit = QtGui.QTextEdit(self)
self.textEdit.setGeometry(QtCore.QRect(20, 60, 361, 161))
self.textEdit.setObjectName(("textEdit"))
self.textEdit.setTabChangesFocus(True)
self.spinBox = QtGui.QSpinBox(self)
self.spinBox.setGeometry(QtCore.QRect(260, 21, 61, 31))
self.spinBox.setMinimum(1)
self.spinBox.setObjectName(("spinBox"))
self.label = QtGui.QLabel(self)
self.label.setGeometry(QtCore.QRect(10, 26, 21, 21))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName(("label"))
self.label.setText("SR")
self.label_2 = QtGui.QLabel(self)
self.label_2.setGeometry(QtCore.QRect(190, 25, 61, 21))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setObjectName(("label_2"))
self.label_2.setText("Priority")
self.setTabOrder(self.lineEdit,self.spinBox)
self.setTabOrder(self.spinBox,self.textEdit)
self.lineEdit.setFocus(True)
self.setWindowTitle("Add To Do SR")
self.show()
## Button functions
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(("accepted()")), self.build)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(("accepted()")), self.close)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(("rejected()")), self.cancel)
def cancel(self):
self.close()
def save(self):
#self.close()
return self.d
def build(self):
#if(len(self.lineEdit.text()!=0)
#print len(self.lineEdit.text())
self.d["SR"]=str(unicode(self.lineEdit.text().toUtf8(), encoding="UTF-8"))
self.d["desc"]=str(unicode(self.textEdit.toPlainText().toUtf8(), encoding="UTF-8"))
self.d["p"]=str(self.spinBox.value())
#print self.d
if self.d["SR"]!='':
#print "saving"
f= open('todo.p', 'r+')
load=p.load(f)
f.close()
#print load
tmp2=[]
tmp2.append(self.d["desc"])
tmp2.append(self.d["p"])
tmp2.append(1)
load[self.d['SR']]=tmp2
#print tmp
#print load
f=open('todo.p','w')
p.dump(load,f)
f.close()
print "closed"
self.save
else:
self.d={}
return False
def openwindow():
app = QtGui.QApplication(sys.argv)
edit_params__QD = MyQDialog()
edit_params__QD.exec_()
edit_params__QD.activateWindow()
if edit_params__QD.result() == 0:
d= edit_params__QD.save()
if len(d)==0:
#print "did not add no SR num"
return False
print "exited out"
#sys.exit(app.exex_())
I want to open new window from existing one in pyqt.
My source code has two functions.
one functions : when button is clicked, File Dialog is opened.
another functions : when another button is clicked, New Window is
opened.
But When I want to New window, error message occurs :
Traceback (most recent call last): File "C:\Users\Han\Desktop\project\prototype\newwindow.py", line 61, in check_start self.w.show() AttributeError: 'Ui_dialog' object has no attribute 'show'
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(518, 349)
self.label = QtGui.QLabel(Form)
self.label.setGeometry(QtCore.QRect(40, 40, 141, 16))
self.label.setObjectName(_fromUtf8("label"))
self.label_2 = QtGui.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(400, 330, 141, 16))
self.label_2.setObjectName(_fromUtf8("label_2"))
self.horizontalLayoutWidget = QtGui.QWidget(Form)
self.horizontalLayoutWidget.setGeometry(QtCore.QRect(70, 200, 381, 31)) self.horizontalLayoutWidget.setObjectName(_fromUtf8("horizontalLayoutWidget"))
self.horizontalLayout = QtGui.QHBoxLayout(self.horizontalLayoutWidget)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.textEdit = QtGui.QTextEdit(self.horizontalLayoutWidget)
self.textEdit.setObjectName(_fromUtf8("textEdit"))
self.horizontalLayout.addWidget(self.textEdit)
self.pushButton = QtGui.QPushButton(self.horizontalLayoutWidget)
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.horizontalLayout.addWidget(self.pushButton)
self.pushButton_2 = QtGui.QPushButton(Form)
self.pushButton_2.setGeometry(QtCore.QRect(230, 270, 75, 23))
self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
self.retranslateUi(Form)
QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.file_open)
QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL(_fromUtf8("clicked()")), self.check_start)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(_translate("Form", "Off_Strip", None))
self.label.setText(_translate("Form", "123", None))
self.label_2.setText(_translate("Form", "#Copyright MokLab", None))
self.pushButton.setText(_translate("Form", "123", None))
self.pushButton_2.setText(_translate("Form", "123!", None))
def file_open(self):
fname = QtGui.QFileDialog.getOpenFileName()
f = open(fname, 'r')
f.close()
def check_start(self):
self.w = Ui_dialog()
self.w.show()
class Ui_dialog(object):
def setupUi(self, dialog):
dialog.setObjectName(_fromUtf8("dialog"))
dialog.resize(400, 300)
self.pushButton = QtGui.QPushButton(dialog)
self.pushButton.setGeometry(QtCore.QRect(190, 130, 75, 23))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.radioButton = QtGui.QRadioButton(dialog)
self.radioButton.setGeometry(QtCore.QRect(30, 70, 90, 16))
self.radioButton.setObjectName(_fromUtf8("radioButton"))
self.radioButton_2 = QtGui.QRadioButton(dialog)
self.radioButton_2.setGeometry(QtCore.QRect(40, 110, 90, 16))
self.radioButton_2.setObjectName(_fromUtf8("radioButton_2"))
self.retranslateUi(dialog)
QtCore.QMetaObject.connectSlotsByName(dialog)
def retranslateUi(self, dialog):
dialog.setWindowTitle(_translate("dialog", "Form", None))
self.pushButton.setText(_translate("dialog", "PushButton", None))
self.radioButton.setText(_translate("dialog", "RadioButton", None))
self.radioButton_2.setText(_translate("dialog", "RadioButton", None))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Form = QtGui.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
The line self.w.show, where you've declared w as a Ui_dialog object, will attempt to call the show instance variable inside Ui_dialog, which doesn't work because you've never defined any function called show.
It doesn't help that you've inherited object for class Ui_dialog. You should probably inherit QtGui.QDialog for that class, and rewrite your class accordingly.
im beginner in Pyqt4.So, i need a help. I had do a multiple widget in Pyqt designer, so i want to connect my main window to my widget. In my main menu, there's a enter button and i want when i clicked the enter button, it will go to page2.ui Here is my code
MainWindow.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'MainWindow.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(707, 563)
MainWindow.setMinimumSize(QtCore.QSize(707, 563))
MainWindow.setMaximumSize(QtCore.QSize(707, 563))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8("../../Documents/Icon/2.0/TheBat.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.label_start = QtGui.QLabel(self.centralwidget)
self.label_start.setGeometry(QtCore.QRect(0, 0, 731, 501))
self.label_start.setText(_fromUtf8(""))
self.label_start.setPixmap(QtGui.QPixmap(_fromUtf8("../../Downloads/Workout routine program.jpg")))
self.label_start.setObjectName(_fromUtf8("label_start"))
self.horizontalLayoutWidget = QtGui.QWidget(self.centralwidget)
self.horizontalLayoutWidget.setGeometry(QtCore.QRect(0, 500, 721, 51))
self.horizontalLayoutWidget.setObjectName(_fromUtf8("horizontalLayoutWidget"))
self.horizontalLayout = QtGui.QHBoxLayout(self.horizontalLayoutWidget)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.enter = QtGui.QPushButton(self.horizontalLayoutWidget)
font = QtGui.QFont()
font.setFamily(_fromUtf8("Corbel"))
font.setPointSize(10)
font.setBold(True)
font.setItalic(False)
font.setUnderline(False)
font.setWeight(75)
font.setStrikeOut(False)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.enter.setFont(font)
self.enter.setAutoFillBackground(False)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(_fromUtf8("../../Documents/Icon/2.0/install.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.enter.setIcon(icon1)
self.enter.setCheckable(False)
self.enter.setAutoDefault(False)
self.enter.setObjectName(_fromUtf8("enter"))
self.horizontalLayout.addWidget(self.enter)
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "Welcome to Workout Routine Program", None))
self.enter.setText(_translate("MainWindow", "Enter", None))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
page2.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'page2_choosegender.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_page2(object):
def setupUi(self, page2):
page2.setObjectName(_fromUtf8("page2"))
page2.setEnabled(True)
page2.resize(627, 459)
self.label_male = QtGui.QLabel(page2)
self.label_male.setGeometry(QtCore.QRect(50, 100, 251, 251))
self.label_male.setText(_fromUtf8(""))
self.label_male.setPixmap(QtGui.QPixmap(_fromUtf8("../../Downloads/1455198182_Tony_Stark.png")))
self.label_male.setObjectName(_fromUtf8("label_male"))
self.label_female = QtGui.QLabel(page2)
self.label_female.setGeometry(QtCore.QRect(330, 100, 251, 251))
self.label_female.setText(_fromUtf8(""))
self.label_female.setPixmap(QtGui.QPixmap(_fromUtf8("../../Downloads/1455198167_Customer_Female_Dark.png")))
self.label_female.setObjectName(_fromUtf8("label_female"))
self.horizontalLayoutWidget = QtGui.QWidget(page2)
self.horizontalLayoutWidget.setGeometry(QtCore.QRect(40, 360, 531, 80))
self.horizontalLayoutWidget.setObjectName(_fromUtf8("horizontalLayoutWidget"))
self.horizontalLayout = QtGui.QHBoxLayout(self.horizontalLayoutWidget)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.pushButton_male = QtGui.QPushButton(self.horizontalLayoutWidget)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8("../../Documents/Icon/2.0/Male.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton_male.setIcon(icon)
self.pushButton_male.setObjectName(_fromUtf8("pushButton_male"))
self.horizontalLayout.addWidget(self.pushButton_male)
self.pushButton_female = QtGui.QPushButton(self.horizontalLayoutWidget)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(_fromUtf8("../../Documents/Icon/2.0/Female.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton_female.setIcon(icon1)
self.pushButton_female.setObjectName(_fromUtf8("pushButton_female"))
self.horizontalLayout.addWidget(self.pushButton_female)
self.textEdit = QtGui.QTextEdit(page2)
self.textEdit.setGeometry(QtCore.QRect(40, 20, 531, 61))
self.textEdit.setReadOnly(True)
self.textEdit.setObjectName(_fromUtf8("textEdit"))
self.retranslateUi(page2)
QtCore.QMetaObject.connectSlotsByName(page2)
def retranslateUi(self, page2):
page2.setWindowTitle(_translate("page2", "Choose your gender", None))
self.pushButton_male.setText(_translate("page2", "Male", None))
self.pushButton_female.setText(_translate("page2", "Female", None))
self.textEdit.setHtml(_translate("page2", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:20pt; font-weight:600;\">Are you ?</span></p></body></html>", None))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
page2 = QtGui.QWidget()
ui = Ui_page2()
ui.setupUi(page2)
page2.show()
sys.exit(app.exec_())
I hope you guys can help me . Thanks
i wouldn't recommend you to continue the way you're going even the error message at the top warns you that changes in the auto-generate file would be lost if you regenerate it again. you should seperate your Ui file and your main code
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'MainWindow.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from page2 import Ui_page2
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(707, 563)
MainWindow.setMinimumSize(QtCore.QSize(707, 563))
MainWindow.setMaximumSize(QtCore.QSize(707, 563))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8("../../Documents/Icon/2.0/TheBat.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.label_start = QtGui.QLabel(self.centralwidget)
self.label_start.setGeometry(QtCore.QRect(0, 0, 731, 501))
self.label_start.setText(_fromUtf8(""))
self.label_start.setPixmap(QtGui.QPixmap(_fromUtf8("../../Downloads/Workout routine program.jpg")))
self.label_start.setObjectName(_fromUtf8("label_start"))
self.horizontalLayoutWidget = QtGui.QWidget(self.centralwidget)
self.horizontalLayoutWidget.setGeometry(QtCore.QRect(0, 500, 721, 51))
self.horizontalLayoutWidget.setObjectName(_fromUtf8("horizontalLayoutWidget"))
self.horizontalLayout = QtGui.QHBoxLayout(self.horizontalLayoutWidget)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
# initialize the qwidget as an attribute of the class and set a listener on the button
self.page2 = QtGui.QWidget()
ui = Ui_page2()
ui.setupUi(self.page2)
self.enter = QtGui.QPushButton(self.horizontalLayoutWidget)
self.enter.clicked.connect(self.page2.show)
font = QtGui.QFont()
font.setFamily(_fromUtf8("Corbel"))
font.setPointSize(10)
font.setBold(True)
font.setItalic(False)
font.setUnderline(False)
font.setWeight(75)
font.setStrikeOut(False)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.enter.setFont(font)
self.enter.setAutoFillBackground(False)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(_fromUtf8("../../Documents/Icon/2.0/install.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.enter.setIcon(icon1)
self.enter.setCheckable(False)
self.enter.setAutoDefault(False)
self.enter.setObjectName(_fromUtf8("enter"))
self.horizontalLayout.addWidget(self.enter)
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "Welcome to Workout Routine Program", None))
self.enter.setText(_translate("MainWindow", "Enter", None))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
as i said earlier your code is not structured properly, if it was it would be as easy as calling self.hide(), or self.close but your Ui_MainWindow is not a QWidget or QMainWindow so it dosen't have that method the QMainWindow is constructed outside the class so you don't have access to it. with some hacking around it can be fixed but it's not good practice. i'll suggest you look at the git repo https://github.com/shuge/Qt-Python-Binding-Examples and see how to organize your code. ideally the auto-generated ui file should be seperated from your logic...This makes it easier to modify your logic in future without messing up the ui or losing your changes when you generate the ui again
ideally you should inherit from QtGui.QMainWindow or some sort of widget
Your autogenerated ui file
ui.py
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(995, 717)
def retranslateUi(self, MainWindow)
pass
logic.py
from ui import Ui_MainWindow
class MyUi(QtGui.QMainWindow):
def __init__(self, parent=None):
super(criticalPath, self).__init__(parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
main.py
import sys
from logic import MyUi
def main():
app = QtGui.QApplication(sys.argv)
#create a new object
my_interface = MyUi()
my_interface.show()
sys.exit(app.exec_())
if __name__ == '__main__': main()
I am trying open a pyqt window from another pyqt window on clicking a button but i can't really get a hold do it . Both the python files opening.py and signup.py can run standalone on their own but i can't think of a way to link them ...(Running signup.py from opening.py after clicking signup button)
opening.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'opening.ui'
#
# Created: Tue Jan 20 00:19:45 2015
# by: PyQt4 UI code generator 4.10.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
#from signup import Ui_Dialog1
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.resize(290, 237)
self.label = QtGui.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(70, 19, 151, 41))
self.label.setObjectName(_fromUtf8("label"))
self.pushButton = QtGui.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(40, 170, 201, 41))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.pushButton_2 = QtGui.QPushButton(Dialog)
self.pushButton_2.setGeometry(QtCore.QRect(40, 100, 201, 41))
self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
self.pushButton.clicked.connect(self.handleTest1)
self.pushButton_2.clicked.connect(self.handleTest2)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
self.label.setText(_translate("Dialog", "MAIL SERVER", None))
self.pushButton.setText(_translate("Dialog", "SIGN UP", None))
self.pushButton_2.setText(_translate("Dialog", "LOGIN", None))
def handleTest1(self):
#self.accept()
#self.h=Ui_Dialog1()
#self.h.setupUi(QtGui.QDialog())
pass
def handleTest2(self):
execfile('login.py')
import sys
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
Dialog = QtGui.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
and other file which is to be opened after clicking signup button (login button doesn't work as of now)
signup.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'abc.ui'
#
# Created: Mon Jan 19 23:35:37 2015
# by: PyQt4 UI code generator 4.10.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Dialog1(object):
def setupUi(self, Dialog):
print "16"
Dialog.setObjectName(_fromUtf8("SignUp"))
Dialog.resize(415, 364)
self.SignUp = QtGui.QDialogButtonBox(Dialog)
self.SignUp.setGeometry(QtCore.QRect(130, 310, 176, 27))
self.SignUp.setOrientation(QtCore.Qt.Horizontal)
self.SignUp.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
self.SignUp.setObjectName(_fromUtf8("SignUp"))
self.label = QtGui.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(50, 50, 91, 21))
self.label.setObjectName(_fromUtf8("label"))
self.label_2 = QtGui.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(50, 110, 66, 17))
self.label_2.setText(_fromUtf8(""))
self.label_2.setObjectName(_fromUtf8("label_2"))
self.label_3 = QtGui.QLabel(Dialog)
self.label_3.setGeometry(QtCore.QRect(50, 100, 66, 17))
self.label_3.setObjectName(_fromUtf8("label_3"))
self.label_4 = QtGui.QLabel(Dialog)
self.label_4.setGeometry(QtCore.QRect(50, 150, 66, 17))
self.label_4.setObjectName(_fromUtf8("label_4"))
self.label_5 = QtGui.QLabel(Dialog)
self.label_5.setGeometry(QtCore.QRect(50, 200, 121, 17))
self.label_5.setObjectName(_fromUtf8("label_5"))
self.label_6 = QtGui.QLabel(Dialog)
self.label_6.setGeometry(QtCore.QRect(50, 250, 91, 17))
self.label_6.setObjectName(_fromUtf8("label_6"))
self.lineEdit_3 = QtGui.QLineEdit(Dialog)
self.lineEdit_3.setGeometry(QtCore.QRect(200, 140, 181, 27))
self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3"))
self.lineEdit_4 = QtGui.QLineEdit(Dialog)
self.lineEdit_4.setGeometry(QtCore.QRect(200, 190, 181, 27))
self.lineEdit_4.setObjectName(_fromUtf8("lineEdit_4"))
self.lineEdit_5 = QtGui.QLineEdit(Dialog)
self.lineEdit_5.setGeometry(QtCore.QRect(200, 90, 181, 27))
self.lineEdit_5.setObjectName(_fromUtf8("lineEdit_5"))
self.lineEdit_6 = QtGui.QLineEdit(Dialog)
self.lineEdit_6.setGeometry(QtCore.QRect(200, 40, 181, 27))
self.lineEdit_6.setObjectName(_fromUtf8("lineEdit_6"))
self.lineEdit_7 = QtGui.QLineEdit(Dialog)
self.lineEdit_7.setGeometry(QtCore.QRect(200, 240, 181, 27))
self.lineEdit_7.setObjectName(_fromUtf8("lineEdit_7"))
self.retranslateUi(Dialog)
QtCore.QObject.connect(self.SignUp, QtCore.SIGNAL(_fromUtf8("accepted()")), Dialog.accept)
QtCore.QObject.connect(self.SignUp, QtCore.SIGNAL(_fromUtf8("rejected()")), Dialog.reject)
QtCore.QMetaObject.connectSlotsByName(Dialog)
print "17"
Dialog.show()
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(_translate("SignUp", "SignUp", None))
self.label.setText(_translate("Dialog", "Name", None))
self.label_3.setText(_translate("Dialog", "E-mail", None))
self.label_4.setText(_translate("Dialog", "Password", None))
self.label_5.setText(_translate("Dialog", "Confirm Password", None))
self.label_6.setText(_translate("Dialog", "Mobile (+91)", None))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Dialog = QtGui.QDialog()
ui = Ui_Dialog1()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
The commented part in opening.py is the one creating problems . Help would be appreciated .
Your Ui_Dialog1 should inherit from QDialog, which makes it an UI object, but you inherit from object, this has no "show" method.
def handleTest1(self):
#self.accept()
#self.h=Ui_Dialog1() # You need to move this to __init__ function
#self.h.setupUi(QtGui.QDialog()) # You need to move this to __init__ function
self.h.show() # call the show method here
You need to move the self.h = Ui_Dialog1() and setupUi to init functions, this will avoid possible memory leak. (otherwise each time you click "sigunup", it will create a new object)