Embedding PyQtGraph plots within an existing Qt Window - python

I'm trying to embed PyQtGraphs into an existing Qt Window (designed with Qt Designer and converted to .py file). I'm having trouble getting the PyQt GraphicLayoutView to size correctly to the Qt Group which is also inside a Tab.
I had previously managed to get the plots to work using MatPlotLib but they are just too slow at updating once the dataset gets larger, so i decided to make the switch to PyQtGraph as several posts suggested.
Im unsure if im embedding the plots correctly or if it is a case of resizing the GrahpicLayoutView to fill the group.
Any help is appreciated, code and images attached:
Image showing how the graphicsView doesnt size to fit the group
emgWindow_ui.py
# Form implementation generated from reading ui file 'emgWindow.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
import pyqtgraph as pg
import numpy as np
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):
global win,curve
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(1239, 796)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
self.centralWidget = QtGui.QWidget(MainWindow)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.centralWidget.sizePolicy().hasHeightForWidth())
self.centralWidget.setSizePolicy(sizePolicy)
self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
self.gridLayout = QtGui.QGridLayout(self.centralWidget)
self.gridLayout.setMargin(11)
self.gridLayout.setSpacing(6)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.tabWidget = QtGui.QTabWidget(self.centralWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth())
self.tabWidget.setSizePolicy(sizePolicy)
self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
self.recordTab = QtGui.QWidget()
self.recordTab.setObjectName(_fromUtf8("recordTab"))
self.dirFrame = QtGui.QFrame(self.recordTab)
self.dirFrame.setGeometry(QtCore.QRect(10, 640, 711, 51))
self.dirFrame.setFrameShape(QtGui.QFrame.StyledPanel)
self.dirFrame.setFrameShadow(QtGui.QFrame.Raised)
self.dirFrame.setObjectName(_fromUtf8("dirFrame"))
self.dirTextBox = QtGui.QTextEdit(self.dirFrame)
self.dirTextBox.setGeometry(QtCore.QRect(10, 10, 511, 31))
self.dirTextBox.setObjectName(_fromUtf8("dirTextBox"))
self.recordBtn = QtGui.QPushButton(self.dirFrame)
self.recordBtn.setGeometry(QtCore.QRect(530, 10, 81, 31))
self.recordBtn.setObjectName(_fromUtf8("recordBtn"))
self.stopBtn = QtGui.QPushButton(self.dirFrame)
self.stopBtn.setGeometry(QtCore.QRect(620, 10, 81, 31))
self.stopBtn.setObjectName(_fromUtf8("stopBtn"))
self.trainingIMGBox = QtGui.QGroupBox(self.recordTab)
self.trainingIMGBox.setGeometry(QtCore.QRect(730, 400, 481, 291))
self.trainingIMGBox.setObjectName(_fromUtf8("trainingIMGBox"))
self.IMUBox = QtGui.QGroupBox(self.recordTab)
self.IMUBox.setGeometry(QtCore.QRect(730, 10, 481, 381))
self.IMUBox.setObjectName(_fromUtf8("IMUBox"))
self.EMGBox = QtGui.QGroupBox(self.recordTab)
self.EMGBox.setGeometry(QtCore.QRect(10, 10, 711, 621))
self.EMGBox.setObjectName(_fromUtf8("EMGBox"))
self.tabWidget.addTab(self.recordTab, _fromUtf8(""))
self.classifyTab = QtGui.QWidget()
self.classifyTab.setObjectName(_fromUtf8("classifyTab"))
self.frame_4 = QtGui.QFrame(self.classifyTab)
self.frame_4.setGeometry(QtCore.QRect(280, 10, 921, 681))
self.frame_4.setFrameShape(QtGui.QFrame.StyledPanel)
self.frame_4.setFrameShadow(QtGui.QFrame.Raised)
self.frame_4.setObjectName(_fromUtf8("frame_4"))
self.featuresBox = QtGui.QGroupBox(self.classifyTab)
self.featuresBox.setGeometry(QtCore.QRect(10, 10, 261, 191))
self.featuresBox.setObjectName(_fromUtf8("featuresBox"))
self.MAVCheck = QtGui.QCheckBox(self.featuresBox)
self.MAVCheck.setGeometry(QtCore.QRect(10, 20, 141, 17))
self.MAVCheck.setObjectName(_fromUtf8("MAVCheck"))
self.RMSCheck = QtGui.QCheckBox(self.featuresBox)
self.RMSCheck.setGeometry(QtCore.QRect(10, 40, 141, 17))
self.RMSCheck.setObjectName(_fromUtf8("RMSCheck"))
self.VARCheck = QtGui.QCheckBox(self.featuresBox)
self.VARCheck.setGeometry(QtCore.QRect(10, 60, 131, 17))
self.VARCheck.setObjectName(_fromUtf8("VARCheck"))
self.SSICheck = QtGui.QCheckBox(self.featuresBox)
self.SSICheck.setGeometry(QtCore.QRect(10, 80, 141, 17))
self.SSICheck.setObjectName(_fromUtf8("SSICheck"))
self.ZCCheck = QtGui.QCheckBox(self.featuresBox)
self.ZCCheck.setGeometry(QtCore.QRect(10, 100, 131, 17))
self.ZCCheck.setObjectName(_fromUtf8("ZCCheck"))
self.WLCheck = QtGui.QCheckBox(self.featuresBox)
self.WLCheck.setGeometry(QtCore.QRect(10, 120, 141, 17))
self.WLCheck.setObjectName(_fromUtf8("WLCheck"))
self.SSCCheck = QtGui.QCheckBox(self.featuresBox)
self.SSCCheck.setGeometry(QtCore.QRect(10, 140, 141, 17))
self.SSCCheck.setObjectName(_fromUtf8("SSCCheck"))
self.WACheck = QtGui.QCheckBox(self.featuresBox)
self.WACheck.setGeometry(QtCore.QRect(10, 160, 131, 17))
self.WACheck.setObjectName(_fromUtf8("WACheck"))
self.splitBox = QtGui.QGroupBox(self.classifyTab)
self.splitBox.setGeometry(QtCore.QRect(10, 210, 261, 91))
self.splitBox.setObjectName(_fromUtf8("splitBox"))
self.trainSpin = QtGui.QSpinBox(self.splitBox)
self.trainSpin.setGeometry(QtCore.QRect(110, 20, 42, 22))
self.trainSpin.setMinimum(1)
self.trainSpin.setMaximum(100)
self.trainSpin.setSingleStep(5)
self.trainSpin.setProperty("value", 70)
self.trainSpin.setObjectName(_fromUtf8("trainSpin"))
self.testSpin = QtGui.QSpinBox(self.splitBox)
self.testSpin.setGeometry(QtCore.QRect(110, 60, 42, 22))
self.testSpin.setMinimum(1)
self.testSpin.setMaximum(100)
self.testSpin.setSingleStep(5)
self.testSpin.setProperty("value", 30)
self.testSpin.setObjectName(_fromUtf8("testSpin"))
self.label = QtGui.QLabel(self.splitBox)
self.label.setGeometry(QtCore.QRect(10, 20, 91, 16))
self.label.setObjectName(_fromUtf8("label"))
self.label_2 = QtGui.QLabel(self.splitBox)
self.label_2.setGeometry(QtCore.QRect(10, 60, 91, 16))
self.label_2.setObjectName(_fromUtf8("label_2"))
self.splitBtn = QtGui.QPushButton(self.splitBox)
self.splitBtn.setGeometry(QtCore.QRect(170, 20, 75, 61))
self.splitBtn.setObjectName(_fromUtf8("splitBtn"))
self.trainBtn = QtGui.QPushButton(self.classifyTab)
self.trainBtn.setGeometry(QtCore.QRect(40, 310, 181, 41))
self.trainBtn.setAutoFillBackground(False)
self.trainBtn.setObjectName(_fromUtf8("trainBtn"))
self.resultsBox = QtGui.QGroupBox(self.classifyTab)
self.resultsBox.setGeometry(QtCore.QRect(10, 360, 261, 331))
self.resultsBox.setObjectName(_fromUtf8("resultsBox"))
self.resultsScroll = QtGui.QScrollArea(self.resultsBox)
self.resultsScroll.setGeometry(QtCore.QRect(10, 20, 241, 301))
self.resultsScroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.resultsScroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.resultsScroll.setWidgetResizable(True)
self.resultsScroll.setObjectName(_fromUtf8("resultsScroll"))
self.scrollAreaWidgetContents = QtGui.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 222, 299))
self.scrollAreaWidgetContents.setObjectName(_fromUtf8("scrollAreaWidgetContents"))
self.resultsScroll.setWidget(self.scrollAreaWidgetContents)
self.tabWidget.addTab(self.classifyTab, _fromUtf8(""))
self.testTab = QtGui.QWidget()
self.testTab.setObjectName(_fromUtf8("testTab"))
self.detectBox = QtGui.QGroupBox(self.testTab)
self.detectBox.setGeometry(QtCore.QRect(600, 10, 191, 681))
self.detectBox.setObjectName(_fromUtf8("detectBox"))
self.gestureTable = QtGui.QTableWidget(self.detectBox)
self.gestureTable.setGeometry(QtCore.QRect(10, 20, 171, 651))
font = QtGui.QFont()
font.setPointSize(12)
self.gestureTable.setFont(font)
self.gestureTable.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.gestureTable.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.gestureTable.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
self.gestureTable.setTextElideMode(QtCore.Qt.ElideMiddle)
self.gestureTable.setRowCount(10)
self.gestureTable.setColumnCount(1)
self.gestureTable.setObjectName(_fromUtf8("gestureTable"))
self.gestureTable.horizontalHeader().setVisible(False)
self.gestureTable.horizontalHeader().setDefaultSectionSize(170)
self.gestureTable.verticalHeader().setVisible(False)
self.gestureTable.verticalHeader().setDefaultSectionSize(65)
self.imgBox = QtGui.QFrame(self.testTab)
self.imgBox.setGeometry(QtCore.QRect(10, 10, 581, 571))
self.imgBox.setFrameShape(QtGui.QFrame.StyledPanel)
self.imgBox.setFrameShadow(QtGui.QFrame.Raised)
self.imgBox.setObjectName(_fromUtf8("imgBox"))
self.gestureSignal = QtGui.QLabel(self.testTab)
self.gestureSignal.setGeometry(QtCore.QRect(10, 590, 581, 21))
font = QtGui.QFont()
font.setPointSize(15)
font.setBold(True)
font.setWeight(75)
self.gestureSignal.setFont(font)
self.gestureSignal.setAlignment(QtCore.Qt.AlignCenter)
self.gestureSignal.setObjectName(_fromUtf8("gestureSignal"))
self.startBtn = QtGui.QPushButton(self.testTab)
self.startBtn.setGeometry(QtCore.QRect(230, 630, 71, 51))
self.startBtn.setObjectName(_fromUtf8("startBtn"))
self.stopBtn_2 = QtGui.QPushButton(self.testTab)
self.stopBtn_2.setGeometry(QtCore.QRect(310, 630, 75, 51))
self.stopBtn_2.setObjectName(_fromUtf8("stopBtn_2"))
self.currentBox = QtGui.QGroupBox(self.testTab)
self.currentBox.setGeometry(QtCore.QRect(800, 10, 411, 681))
self.currentBox.setObjectName(_fromUtf8("currentBox"))
self.tabWidget.addTab(self.testTab, _fromUtf8(""))
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
MainWindow.setCentralWidget(self.centralWidget)
self.menuBar = QtGui.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 1239, 21))
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.win = pg.GraphicsLayoutWidget(self.EMGBox)
#self.win = pg.GraphicsWindow()
pg.setConfigOptions(antialias=True)
self.p6 = self.win.addPlot(title="My Plot")
self.curve = self.p6.plot(pen='r')
data1 = np.random.normal(size=300)
curve1 = self.p6.plot(data1)
ptr1 = 0
def update1():
global data1, ptr1
data1[:-1] = data1[1:] # shift data in the array one sample left
# (see also: np.roll)
data1[-1] = np.random.normal()
curve1.setData(data1)
ptr1 += 1
curve1.setData(data1)
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "EMG Gesute Classifier", None))
self.recordBtn.setText(_translate("MainWindow", "Record", None))
self.stopBtn.setText(_translate("MainWindow", "Stop", None))
self.trainingIMGBox.setTitle(_translate("MainWindow", "Gesture", None))
self.IMUBox.setTitle(_translate("MainWindow", "IMU Data", None))
self.EMGBox.setTitle(_translate("MainWindow", "EMG Data", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.recordTab), _translate("MainWindow", "Record", None))
self.featuresBox.setTitle(_translate("MainWindow", "Features", None))
self.MAVCheck.setText(_translate("MainWindow", "Mean Absolute Value", None))
self.RMSCheck.setText(_translate("MainWindow", "Root Mean Square", None))
self.VARCheck.setText(_translate("MainWindow", "Variance", None))
self.SSICheck.setText(_translate("MainWindow", "Simple Square Integral", None))
self.ZCCheck.setText(_translate("MainWindow", "Zero Crossings", None))
self.WLCheck.setText(_translate("MainWindow", "Wave Length", None))
self.SSCCheck.setText(_translate("MainWindow", "Slope Sign Changes", None))
self.WACheck.setText(_translate("MainWindow", "Willison Amplitude", None))
self.splitBox.setTitle(_translate("MainWindow", "Split Data", None))
self.label.setText(_translate("MainWindow", "Training Dataset:", None))
self.label_2.setText(_translate("MainWindow", "Test Dataset:", None))
self.splitBtn.setText(_translate("MainWindow", "Split", None))
self.trainBtn.setText(_translate("MainWindow", "Train", None))
self.resultsBox.setTitle(_translate("MainWindow", "Results", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.classifyTab), _translate("MainWindow", "Classify", None))
self.detectBox.setTitle(_translate("MainWindow", "Gesture Detected", None))
self.gestureSignal.setText(_translate("MainWindow", "SIGNAL", None))
self.startBtn.setText(_translate("MainWindow", "Start", None))
self.stopBtn_2.setText(_translate("MainWindow", "Stop", None))
self.currentBox.setTitle(_translate("MainWindow", "Current", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.testTab), _translate("MainWindow", "Test", None))
It is all executed from emgRun.py
import sys
import numpy as np
import pyqtgraph as pg
from PyQt4 import QtCore, QtGui
from emgesture import EMG_Classify as emg
from emgWindow_ui import Ui_MainWindow
data = emg.dataset
class MyForm(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyForm()
myapp.show()
sys.exit(app.exec_())

Related

issue with QScrollArea

I am trying to add some check boxes in scroll area.but for me it is not working properly.i am new in python could anyone help?
import PyQt5
from PyQt5 import QtCore, QtGui, QtWidgets
from configparser import ConfigParser
import paramiko
import threading
import os
if hasattr(QtCore.Qt, 'AA_EnableHighDpiScaling'):
PyQt5.QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True)
if hasattr(QtCore.Qt, 'AA_UseHighDpiPixmaps'):
PyQt5.QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)
class Ui_MainWindow(object):
def __init__(self, parent=None):
self.configur = ConfigParser()
self.configur.read('ServerConfigurationDetails.ini')
self.serverName=self.configur.sections()
print(self.serverName)
self.getComponents = self.configur.options("Component")
self.sLen = len(self.serverName)
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
MainWindow.resize(951, 634)
font = QtGui.QFont()
font.setPointSize(10)
MainWindow.setFont(font)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(150, 220, 91, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.comboBox_2 = QtWidgets.QComboBox(self.centralwidget)
self.comboBox_2.setGeometry(QtCore.QRect(250, 220, 231, 31))
self.comboBox_2.setObjectName("comboBox_2")
self.comboBox_2.addItem("")
self.comboBox_2.addItem("")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(700, 40, 101, 31))
self.pushButton.setObjectName("pushButton")
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setGeometry(QtCore.QRect(140, 260, 681, 81))
self.groupBox.setObjectName("groupBox")
self.radioButton = QtWidgets.QRadioButton(self.groupBox)
self.radioButton.setGeometry(QtCore.QRect(10, 30, 201, 20))
self.radioButton.setObjectName("radioButton")
self.radioButton_2 = QtWidgets.QRadioButton(self.groupBox)
self.radioButton_2.setGeometry(QtCore.QRect(220, 30, 201, 20))
self.radioButton_2.setObjectName("radioButton_2")
self.checkBox = QtWidgets.QCheckBox(self.groupBox)
self.checkBox.setEnabled(False)
self.checkBox.setGeometry(QtCore.QRect(10, 50, 231, 31))
self.checkBox.setChecked(True)
self.checkBox.setObjectName("checkBox")
self.radioButton_3 = QtWidgets.QRadioButton(self.groupBox)
self.radioButton_3.setGeometry(QtCore.QRect(420, 30, 171, 20))
self.radioButton_3.setObjectName("radioButton_3")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(280, 40, 411, 31))
self.lineEdit.setObjectName("lineEdit")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(130, 40, 131, 31))
self.label_3.setObjectName("label_3")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(140, 125, 661, 21))
self.label_5.setText("")
self.label_5.setObjectName("label_5")
self.scrollArea = QtWidgets.QScrollArea(self.centralwidget)
self.scrollArea.setGeometry(QtCore.QRect(130, 110, 681, 101))
self.scrollArea.setAccessibleDescription("")
self.scrollArea.setWidgetResizable(False)
self.scrollArea.setObjectName("scrollArea")
self.scrollAreaWidgetContents = QtWidgets.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 679, 99))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
c=10
n=0
x = 10
y = 10
print(self.sLen)
for i in range(self.sLen):
if(n==4):
n=0
x=10
y=y+20
self.checkbox1 = QtWidgets.QCheckBox(self.scrollAreaWidgetContents)
self.checkbox1.setGeometry(QtCore.QRect(x+1, y+1, 161, 20))
self.checkbox1.setText(self.serverName[i])
self.checkbox1.setObjectName(self.serverName[i])
print(x)
print(n)
n=n+1
if(n==4):
x=10
y = y+20
else:
x= x+180
## self.checkBox_2 = QtWidgets.QCheckBox(self.scrollAreaWidgetContents)
## self.checkBox_2.setGeometry(QtCore.QRect(10, 10, 161, 20))
## self.checkBox_2.setObjectName("checkBox_2")
## self.checkBox_3 = QtWidgets.QCheckBox(self.scrollAreaWidgetContents)
## self.checkBox_3.setGeometry(QtCore.QRect(180, 10, 131, 20))
## self.checkBox_3.setObjectName("checkBox_3")
## self.checkBox_4 = QtWidgets.QCheckBox(self.scrollAreaWidgetContents)
## self.checkBox_4.setGeometry(QtCore.QRect(350, 10, 151, 20))
## self.checkBox_4.setObjectName("checkBox_4")
## self.checkBox_5 = QtWidgets.QCheckBox(self.scrollAreaWidgetContents)
## self.checkBox_5.setGeometry(QtCore.QRect(530, 10, 141, 20))
## self.checkBox_5.setObjectName("checkBox_5")
## self.checkBox_6 = QtWidgets.QCheckBox(self.scrollAreaWidgetContents)
## self.checkBox_6.setGeometry(QtCore.QRect(10, 30, 161, 20))
## self.checkBox_6.setObjectName("checkBox_6")
self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
self.scrollArea_2 = QtWidgets.QScrollArea(self.centralwidget)
self.scrollArea_2.setGeometry(QtCore.QRect(140, 380, 681, 191))
self.scrollArea_2.setWidgetResizable(True)
self.scrollArea_2.setObjectName("scrollArea_2")
self.scrollAreaWidgetContents_2 = QtWidgets.QWidget()
self.scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 679, 189))
self.scrollAreaWidgetContents_2.setObjectName("scrollAreaWidgetContents_2")
self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2)
self.line = QtWidgets.QFrame(self.centralwidget)
self.line.setGeometry(QtCore.QRect(70, 340, 811, 20))
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 951, 26))
self.menubar.setObjectName("menubar")
self.menuhelp = QtWidgets.QMenu(self.menubar)
self.menuhelp.setObjectName("menuhelp")
MainWindow.setMenuBar(self.menubar)
self.actionAbout = QtWidgets.QAction(MainWindow)
self.actionAbout.setObjectName("actionAbout")
self.menuhelp.addAction(self.actionAbout)
self.menubar.addAction(self.menuhelp.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label_2.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:10pt;\">Component</span></p></body></html>"))
self.comboBox_2.setItemText(0, _translate("MainWindow", "eComm"))
self.comboBox_2.setItemText(1, _translate("MainWindow", "workproc"))
self.pushButton.setText(_translate("MainWindow", "Search"))
self.groupBox.setTitle(_translate("MainWindow", "Other Details"))
self.radioButton.setText(_translate("MainWindow", "Only Search in Archive"))
self.radioButton_2.setText(_translate("MainWindow", "Also Search in Archive"))
self.checkBox.setText(_translate("MainWindow", "Auto Download"))
self.radioButton_3.setText(_translate("MainWindow", "Only Search in Log"))
self.label_3.setText(_translate("MainWindow", "<html><head/><body><p>Search String<span style=\" color:#ff0000;\">*</span></p></body></html>"))
## self.checkBox_2.setText(_translate("MainWindow", "CheckBox"))
## self.checkBox_3.setText(_translate("MainWindow", "CheckBox"))
## self.checkBox_4.setText(_translate("MainWindow", "CheckBox"))
## self.checkBox_5.setText(_translate("MainWindow", "CheckBox"))
## self.checkBox_6.setText(_translate("MainWindow", "CheckBox"))
self.menuhelp.setTitle(_translate("MainWindow", "Help"))
self.actionAbout.setText(_translate("MainWindow", "About"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
as you can see the scroll area is not showing properly.i have some 20 servers to show.this server list is coming from ini file and i need to show the check boxes in that scroll area.
you need to use QLayout to arrange you widgets. check out
Qt Designer -> "Widget Box" docker -> "Layouts" section
For the scrollarea part:
create scrollarea scroll_area = QScrollArea()
create view widget you want to put inside scrollarea base_widget = QWidget()
install view layout for view widget base_layout = QVBoxLayout(base_widget)
install view widget into scrollarea scroll_area.setWidget(base_widget)
fill in objects with view layout base_layout.addWidget(QLabel('foo')) base_layout.addWidget(QPushButton('bar')) base_layout.addLayout(my_sub_layout) etc.

Linking PyQt buttons with Python actions

I'm having trouble getting buttons in a GUI laid out in QT Designer and converted into a python script to do anything when clicked.
At the moment my code looks like this:
import sys
from PyQt4.QtGui import QApplication, QDialog
from punchmenuui import *
from PyQt4.QtGui import *
from PyQt4.QtCore import pyqtSignal
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.closemenubutton.clicked.connect(self.closemenu)
def closemenu(self):
sys.exit()
app = QApplication(sys.argv)
window = QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(window)
window.show()
sys.exit(app.exec_())
As you can see, its simple. I have a button specified in the layout .py file and I'm trying to capture the "clicked" signal from it and have that trigger a clean exit event. The trouble is: nothing seems to achieve that.
I've tried both the newer and older style PyQt signal/slot bindings to no avail.
Can anyone spot what I'm doing wrong?
EDIT:
Thanks for the responses so far guys. I've tried every combination of all of your answers, but none of them work so far. My current code for the launcher .py script stands as:
import sys
from PyQt4.QtGui import QApplication, QDialog
from punchmenuui import *
from PyQt4.QtGui import *
from PyQt4.QtCore import pyqtSignal
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.closemenubutton.clicked.connect(self.closemenu)
def closemenu():
sys.exit()
app = QApplication(sys.argv)
window = QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(window)
window.show()
sys.exit(app.exec_())
and the script for the QT-Designed ui is:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'punchmenu.ui'
#
# Created: Tue Mar 10 01:30:31 2015
# by: PyQt4 UI code generator 4.11.3
#
# 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(480, 320)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.tabWidget = QtGui.QTabWidget(self.centralwidget)
self.tabWidget.setGeometry(QtCore.QRect(-1, 0, 481, 301))
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth())
self.tabWidget.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.tabWidget.setFont(font)
self.tabWidget.setStyleSheet(_fromUtf8("QTabBar::scroller { /* the width of the scroll buttons */ width: 50px; } "))
self.tabWidget.setTabPosition(QtGui.QTabWidget.North)
self.tabWidget.setTabShape(QtGui.QTabWidget.Rounded)
self.tabWidget.setElideMode(QtCore.Qt.ElideNone)
self.tabWidget.setUsesScrollButtons(True)
self.tabWidget.setDocumentMode(True)
self.tabWidget.setTabsClosable(False)
self.tabWidget.setMovable(False)
self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
self.hometab = QtGui.QWidget()
self.hometab.setObjectName(_fromUtf8("hometab"))
self.label = QtGui.QLabel(self.hometab)
self.label.setGeometry(QtCore.QRect(60, 0, 371, 231))
self.label.setText(_fromUtf8(""))
self.label.setPixmap(QtGui.QPixmap(_fromUtf8("vtc punch logo.jpg")))
self.label.setObjectName(_fromUtf8("label"))
self.label_2 = QtGui.QLabel(self.hometab)
self.label_2.setGeometry(QtCore.QRect(10, 240, 81, 31))
font = QtGui.QFont()
font.setPointSize(18)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.flipscreenbutton = QtGui.QPushButton(self.hometab)
self.flipscreenbutton.setGeometry(QtCore.QRect(150, 240, 191, 31))
font = QtGui.QFont()
font.setPointSize(16)
self.flipscreenbutton.setFont(font)
self.flipscreenbutton.setObjectName(_fromUtf8("flipscreenbutton"))
self.tabWidget.addTab(self.hometab, _fromUtf8(""))
self.powertab = QtGui.QWidget()
self.powertab.setObjectName(_fromUtf8("powertab"))
self.groupBox_5 = QtGui.QGroupBox(self.powertab)
self.groupBox_5.setGeometry(QtCore.QRect(10, 10, 461, 261))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.groupBox_5.setFont(font)
self.groupBox_5.setObjectName(_fromUtf8("groupBox_5"))
self.restartbutton = QtGui.QPushButton(self.groupBox_5)
self.restartbutton.setGeometry(QtCore.QRect(130, 20, 181, 111))
font = QtGui.QFont()
font.setPointSize(18)
font.setBold(False)
font.setWeight(50)
self.restartbutton.setFont(font)
self.restartbutton.setObjectName(_fromUtf8("restartbutton"))
self.shutdownbutton = QtGui.QPushButton(self.groupBox_5)
self.shutdownbutton.setGeometry(QtCore.QRect(130, 140, 181, 111))
font = QtGui.QFont()
font.setPointSize(18)
self.shutdownbutton.setFont(font)
self.shutdownbutton.setObjectName(_fromUtf8("shutdownbutton"))
self.tabWidget.addTab(self.powertab, _fromUtf8(""))
self.lanipconfigtab = QtGui.QWidget()
self.lanipconfigtab.setObjectName(_fromUtf8("lanipconfigtab"))
self.groupBox = QtGui.QGroupBox(self.lanipconfigtab)
self.groupBox.setGeometry(QtCore.QRect(10, 10, 461, 261))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.groupBox.setFont(font)
self.groupBox.setObjectName(_fromUtf8("groupBox"))
self.dhcpbutton = QtGui.QPushButton(self.groupBox)
self.dhcpbutton.setGeometry(QtCore.QRect(10, 80, 201, 91))
font = QtGui.QFont()
font.setPointSize(16)
self.dhcpbutton.setFont(font)
self.dhcpbutton.setObjectName(_fromUtf8("dhcpbutton"))
self.staticbutton = QtGui.QPushButton(self.groupBox)
self.staticbutton.setGeometry(QtCore.QRect(250, 80, 201, 91))
font = QtGui.QFont()
font.setPointSize(16)
self.staticbutton.setFont(font)
self.staticbutton.setObjectName(_fromUtf8("staticbutton"))
self.tabWidget.addTab(self.lanipconfigtab, _fromUtf8(""))
self.wificonfigtab = QtGui.QWidget()
self.wificonfigtab.setObjectName(_fromUtf8("wificonfigtab"))
self.scrollArea = QtGui.QScrollArea(self.wificonfigtab)
self.scrollArea.setGeometry(QtCore.QRect(0, 0, 481, 281))
self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName(_fromUtf8("scrollArea"))
self.scrollAreaWidgetContents = QtGui.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 477, 277))
self.scrollAreaWidgetContents.setObjectName(_fromUtf8("scrollAreaWidgetContents"))
self.groupBox_9 = QtGui.QGroupBox(self.scrollAreaWidgetContents)
self.groupBox_9.setGeometry(QtCore.QRect(0, 10, 471, 261))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.groupBox_9.setFont(font)
self.groupBox_9.setObjectName(_fromUtf8("groupBox_9"))
self.layoutWidget = QtGui.QWidget(self.groupBox_9)
self.layoutWidget.setGeometry(QtCore.QRect(10, 20, 451, 241))
self.layoutWidget.setObjectName(_fromUtf8("layoutWidget"))
self.verticalLayout = QtGui.QVBoxLayout(self.layoutWidget)
self.verticalLayout.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
self.verticalLayout.setMargin(0)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.scanforaccesspointsbutton = QtGui.QPushButton(self.layoutWidget)
font = QtGui.QFont()
font.setPointSize(16)
self.scanforaccesspointsbutton.setFont(font)
self.scanforaccesspointsbutton.setObjectName(_fromUtf8("scanforaccesspointsbutton"))
self.verticalLayout.addWidget(self.scanforaccesspointsbutton)
self.connectwifibutton = QtGui.QPushButton(self.layoutWidget)
font = QtGui.QFont()
font.setPointSize(16)
self.connectwifibutton.setFont(font)
self.connectwifibutton.setObjectName(_fromUtf8("connectwifibutton"))
self.verticalLayout.addWidget(self.connectwifibutton)
self.disconnectwifibutton = QtGui.QPushButton(self.layoutWidget)
font = QtGui.QFont()
font.setPointSize(16)
self.disconnectwifibutton.setFont(font)
self.disconnectwifibutton.setObjectName(_fromUtf8("disconnectwifibutton"))
self.verticalLayout.addWidget(self.disconnectwifibutton)
self.erasestoredwifinetworksbutton = QtGui.QPushButton(self.layoutWidget)
font = QtGui.QFont()
font.setPointSize(16)
self.erasestoredwifinetworksbutton.setFont(font)
self.erasestoredwifinetworksbutton.setObjectName(_fromUtf8("erasestoredwifinetworksbutton"))
self.verticalLayout.addWidget(self.erasestoredwifinetworksbutton)
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
self.tabWidget.addTab(self.wificonfigtab, _fromUtf8(""))
self.captivportallogintab = QtGui.QWidget()
self.captivportallogintab.setObjectName(_fromUtf8("captivportallogintab"))
self.webView = QtWebKit.QWebView(self.captivportallogintab)
self.webView.setGeometry(QtCore.QRect(0, 0, 481, 271))
self.webView.setUrl(QtCore.QUrl(_fromUtf8("http://www.briancourt.co.uk/")))
self.webView.setZoomFactor(0.40000000596)
self.webView.setRenderHints(QtGui.QPainter.SmoothPixmapTransform|QtGui.QPainter.TextAntialiasing)
self.webView.setObjectName(_fromUtf8("webView"))
self.tabWidget.addTab(self.captivportallogintab, _fromUtf8(""))
self.wifiapconfigtab = QtGui.QWidget()
self.wifiapconfigtab.setObjectName(_fromUtf8("wifiapconfigtab"))
self.groupBox_4 = QtGui.QGroupBox(self.wifiapconfigtab)
self.groupBox_4.setGeometry(QtCore.QRect(10, 10, 461, 261))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.groupBox_4.setFont(font)
self.groupBox_4.setObjectName(_fromUtf8("groupBox_4"))
self.tabWidget.addTab(self.wifiapconfigtab, _fromUtf8(""))
self.vpnconfigtab = QtGui.QWidget()
self.vpnconfigtab.setObjectName(_fromUtf8("vpnconfigtab"))
self.groupBox_6 = QtGui.QGroupBox(self.vpnconfigtab)
self.groupBox_6.setGeometry(QtCore.QRect(10, 10, 461, 261))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.groupBox_6.setFont(font)
self.groupBox_6.setObjectName(_fromUtf8("groupBox_6"))
self.disconnectvpnbutton = QtGui.QPushButton(self.groupBox_6)
self.disconnectvpnbutton.setGeometry(QtCore.QRect(10, 150, 211, 91))
font = QtGui.QFont()
font.setPointSize(16)
self.disconnectvpnbutton.setFont(font)
self.disconnectvpnbutton.setObjectName(_fromUtf8("disconnectvpnbutton"))
self.connectvpnbutton = QtGui.QPushButton(self.groupBox_6)
self.connectvpnbutton.setGeometry(QtCore.QRect(240, 150, 211, 91))
font = QtGui.QFont()
font.setPointSize(16)
self.connectvpnbutton.setFont(font)
self.connectvpnbutton.setObjectName(_fromUtf8("connectvpnbutton"))
self.switchtotcpbutton = QtGui.QPushButton(self.groupBox_6)
self.switchtotcpbutton.setGeometry(QtCore.QRect(240, 40, 211, 91))
font = QtGui.QFont()
font.setPointSize(16)
self.switchtotcpbutton.setFont(font)
self.switchtotcpbutton.setObjectName(_fromUtf8("switchtotcpbutton"))
self.switchtoudpbutton = QtGui.QPushButton(self.groupBox_6)
self.switchtoudpbutton.setGeometry(QtCore.QRect(10, 40, 211, 91))
font = QtGui.QFont()
font.setPointSize(16)
self.switchtoudpbutton.setFont(font)
self.switchtoudpbutton.setObjectName(_fromUtf8("switchtoudpbutton"))
self.tabWidget.addTab(self.vpnconfigtab, _fromUtf8(""))
self.statusdisplaytab = QtGui.QWidget()
self.statusdisplaytab.setObjectName(_fromUtf8("statusdisplaytab"))
self.lanipbox = QtGui.QGroupBox(self.statusdisplaytab)
self.lanipbox.setGeometry(QtCore.QRect(10, 0, 461, 71))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.lanipbox.setFont(font)
self.lanipbox.setObjectName(_fromUtf8("lanipbox"))
self.lanipshow = QtGui.QLabel(self.lanipbox)
self.lanipshow.setGeometry(QtCore.QRect(10, 20, 451, 41))
font = QtGui.QFont()
font.setPointSize(16)
self.lanipshow.setFont(font)
self.lanipshow.setAlignment(QtCore.Qt.AlignCenter)
self.lanipshow.setObjectName(_fromUtf8("lanipshow"))
self.groupBox_2 = QtGui.QGroupBox(self.statusdisplaytab)
self.groupBox_2.setGeometry(QtCore.QRect(10, 80, 461, 91))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.groupBox_2.setFont(font)
self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
self.wifiipshow = QtGui.QLabel(self.groupBox_2)
self.wifiipshow.setGeometry(QtCore.QRect(10, 30, 451, 41))
font = QtGui.QFont()
font.setPointSize(16)
self.wifiipshow.setFont(font)
self.wifiipshow.setAlignment(QtCore.Qt.AlignCenter)
self.wifiipshow.setObjectName(_fromUtf8("wifiipshow"))
self.groupBox_3 = QtGui.QGroupBox(self.statusdisplaytab)
self.groupBox_3.setGeometry(QtCore.QRect(10, 180, 461, 91))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.groupBox_3.setFont(font)
self.groupBox_3.setObjectName(_fromUtf8("groupBox_3"))
self.vpnipshow = QtGui.QLabel(self.groupBox_3)
self.vpnipshow.setGeometry(QtCore.QRect(10, 30, 451, 41))
font = QtGui.QFont()
font.setPointSize(16)
self.vpnipshow.setFont(font)
self.vpnipshow.setAlignment(QtCore.Qt.AlignCenter)
self.vpnipshow.setObjectName(_fromUtf8("vpnipshow"))
self.tabWidget.addTab(self.statusdisplaytab, _fromUtf8(""))
self.softwareupdatetab = QtGui.QWidget()
self.softwareupdatetab.setObjectName(_fromUtf8("softwareupdatetab"))
self.label_7 = QtGui.QLabel(self.softwareupdatetab)
self.label_7.setGeometry(QtCore.QRect(50, 40, 311, 41))
font = QtGui.QFont()
font.setPointSize(20)
self.label_7.setFont(font)
self.label_7.setObjectName(_fromUtf8("label_7"))
self.label_8 = QtGui.QLabel(self.softwareupdatetab)
self.label_8.setGeometry(QtCore.QRect(370, 40, 121, 41))
font = QtGui.QFont()
font.setPointSize(20)
self.label_8.setFont(font)
self.label_8.setObjectName(_fromUtf8("label_8"))
self.groupBox_7 = QtGui.QGroupBox(self.softwareupdatetab)
self.groupBox_7.setGeometry(QtCore.QRect(10, 9, 461, 261))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.groupBox_7.setFont(font)
self.groupBox_7.setObjectName(_fromUtf8("groupBox_7"))
self.checkforupdatebutton = QtGui.QPushButton(self.groupBox_7)
self.checkforupdatebutton.setGeometry(QtCore.QRect(110, 90, 231, 91))
font = QtGui.QFont()
font.setPointSize(16)
self.checkforupdatebutton.setFont(font)
self.checkforupdatebutton.setObjectName(_fromUtf8("checkforupdatebutton"))
self.tabWidget.addTab(self.softwareupdatetab, _fromUtf8(""))
self.devmenutab = QtGui.QWidget()
self.devmenutab.setObjectName(_fromUtf8("devmenutab"))
self.groupBox_8 = QtGui.QGroupBox(self.devmenutab)
self.groupBox_8.setGeometry(QtCore.QRect(9, 10, 461, 261))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.groupBox_8.setFont(font)
self.groupBox_8.setObjectName(_fromUtf8("groupBox_8"))
self.closemenubutton = QtGui.QPushButton(self.groupBox_8)
self.closemenubutton.setGeometry(QtCore.QRect(20, 40, 191, 61))
font = QtGui.QFont()
font.setPointSize(16)
self.closemenubutton.setFont(font)
self.closemenubutton.setObjectName(_fromUtf8("closemenubutton"))
self.iteratenewpunch = QtGui.QPushButton(self.groupBox_8)
self.iteratenewpunch.setGeometry(QtCore.QRect(20, 180, 421, 61))
font = QtGui.QFont()
font.setPointSize(16)
self.iteratenewpunch.setFont(font)
self.iteratenewpunch.setObjectName(_fromUtf8("iteratenewpunch"))
self.cloneexistingpunchbutton = QtGui.QPushButton(self.groupBox_8)
self.cloneexistingpunchbutton.setGeometry(QtCore.QRect(20, 110, 421, 61))
font = QtGui.QFont()
font.setPointSize(16)
self.cloneexistingpunchbutton.setFont(font)
self.cloneexistingpunchbutton.setObjectName(_fromUtf8("cloneexistingpunchbutton"))
self.restartmenubutton = QtGui.QPushButton(self.groupBox_8)
self.restartmenubutton.setGeometry(QtCore.QRect(250, 40, 191, 61))
font = QtGui.QFont()
font.setPointSize(16)
self.restartmenubutton.setFont(font)
self.restartmenubutton.setObjectName(_fromUtf8("restartmenubutton"))
self.tabWidget.addTab(self.devmenutab, _fromUtf8(""))
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setSizeGripEnabled(False)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(9)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "Punch Menu", None))
self.label_2.setText(_translate("MainWindow", "Beta 2", None))
self.flipscreenbutton.setText(_translate("MainWindow", "Flip Screen", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.hometab), _translate("MainWindow", "Home", None))
self.groupBox_5.setTitle(_translate("MainWindow", "Select Action", None))
self.restartbutton.setText(_translate("MainWindow", "Restart", None))
self.shutdownbutton.setText(_translate("MainWindow", "Shutdown", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.powertab), _translate("MainWindow", "Power", None))
self.groupBox.setTitle(_translate("MainWindow", "Select Connection Type", None))
self.dhcpbutton.setText(_translate("MainWindow", "DHCP (Auto)", None))
self.staticbutton.setText(_translate("MainWindow", "Static (Manual)", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.lanipconfigtab), _translate("MainWindow", "LAN IP Config", None))
self.groupBox_9.setTitle(_translate("MainWindow", "Select Action", None))
self.scanforaccesspointsbutton.setText(_translate("MainWindow", "Scan for Access Points", None))
self.connectwifibutton.setText(_translate("MainWindow", "Connect Wifi", None))
self.disconnectwifibutton.setText(_translate("MainWindow", "Disconnect Wifi", None))
self.erasestoredwifinetworksbutton.setText(_translate("MainWindow", "Erase Stored Wifi Networks", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.wificonfigtab), _translate("MainWindow", "Wifi IP Config", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.captivportallogintab), _translate("MainWindow", "Captive Portal Login", None))
self.groupBox_4.setTitle(_translate("MainWindow", "Feature Not Yet Implemented", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.wifiapconfigtab), _translate("MainWindow", "Wifi A/P Config", None))
self.groupBox_6.setTitle(_translate("MainWindow", "Select Action", None))
self.disconnectvpnbutton.setText(_translate("MainWindow", "Disconnect VPN", None))
self.connectvpnbutton.setText(_translate("MainWindow", "Connect VPN", None))
self.switchtotcpbutton.setText(_translate("MainWindow", "Switch to TCP", None))
self.switchtoudpbutton.setText(_translate("MainWindow", "Switch to UDP", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.vpnconfigtab), _translate("MainWindow", "VPN Config", None))
self.lanipbox.setTitle(_translate("MainWindow", "LAN IP", None))
self.lanipshow.setText(_translate("MainWindow", "IP GOES HERE", None))
self.groupBox_2.setTitle(_translate("MainWindow", "WIFI IP", None))
self.wifiipshow.setText(_translate("MainWindow", "IP GOES HERE", None))
self.groupBox_3.setTitle(_translate("MainWindow", "VPN IP", None))
self.vpnipshow.setText(_translate("MainWindow", "IP GOES HERE", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.statusdisplaytab), _translate("MainWindow", "Status Display", None))
self.label_7.setText(_translate("MainWindow", "Current Software Version:", None))
self.label_8.setText(_translate("MainWindow", "016", None))
self.groupBox_7.setTitle(_translate("MainWindow", "Software Version", None))
self.checkforupdatebutton.setText(_translate("MainWindow", "Check For Update", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.softwareupdatetab), _translate("MainWindow", "Software Update", None))
self.groupBox_8.setTitle(_translate("MainWindow", "Select Action", None))
self.closemenubutton.setText(_translate("MainWindow", "Close Menu", None))
self.iteratenewpunch.setText(_translate("MainWindow", "Iterate and Deploy New Punch!", None))
self.cloneexistingpunchbutton.setText(_translate("MainWindow", "Clone Existing Punch!", None))
self.restartmenubutton.setText(_translate("MainWindow", "Restart Menu", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.devmenutab), _translate("MainWindow", "Dev Menu", None))
from PyQt4 import QtWebKit
Does this help nail-down what isn't doing what it should be?
Your closemenu function needs to be part of your class.
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.closemenubutton.clicked.connect(self.closemenu)
# Notice this has been brought into the class
def closemenu(self):
sys.exit()
You didn't provide your UI file, so I can't perform an exact test, but I can show you that this works with a simple example:
This code creates a single button:
import sys
from PyQt4 import QtGui, QtCore
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.closebutton = QtGui.QPushButton('Exit', self)
self.closebutton.clicked.connect(self.exit_button)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.closebutton)
def exit_button(self):
sys.exit()
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
It looks like this:
When the button is clicked, the application closes with an exit status of 0 (a clean exit)
C:\Sandbox>python exit_button.py
C:\Sandbox>echo %ERRORLEVEL%
0
Whatever the underlying problem was, I was able to remedy it by switching to using Eric IDE in conjunction with Qt designer and following this tutorial: http://eric-ide.python-projects.org/tutorials/MiniBrowser/index.html to learn about the benefits of a development "environment" over what amounts to basically notepad that I was using before!
Defining actions is so much easier when you can see the handles you're attaching them too!
Other noobs reading this - follow that guide, it got me off the ground with object orientated programming and GUIs.

AttributeError: 'module' object has no attribute 'QMainWindowWindowWidget'

so I'm creating a windows application with Python and PyQt4. I use Python 2.7.6. File ui converting I using pyuic4 form_window.ui -o form_window.py
from PyQt4 import QtCore, QtGui
import sys
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(QtGui.QMainWindowWidget):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setupUi(self)
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(623, 359)
self.centralWidget = QtGui.QWidget(MainWindow)
self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
self.textEdit = QtGui.QTextEdit(self.centralWidget)
self.textEdit.setGeometry(QtCore.QRect(230, 40, 371, 281))
self.textEdit.setObjectName(_fromUtf8("textEdit"))
self.lineEdit = QtGui.QLineEdit(self.centralWidget)
self.lineEdit.setGeometry(QtCore.QRect(10, 40, 191, 23))
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.lineEdit_2 = QtGui.QLineEdit(self.centralWidget)
self.lineEdit_2.setGeometry(QtCore.QRect(10, 80, 191, 23))
self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))
self.lineEdit_3 = QtGui.QLineEdit(self.centralWidget)
self.lineEdit_3.setGeometry(QtCore.QRect(10, 120, 191, 23))
self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3"))
self.label = QtGui.QLabel(self.centralWidget)
self.label.setGeometry(QtCore.QRect(240, 20, 59, 15))
self.label.setObjectName(_fromUtf8("label"))
self.label_2 = QtGui.QLabel(self.centralWidget)
self.label_2.setGeometry(QtCore.QRect(10, 20, 59, 15))
self.label_2.setObjectName(_fromUtf8("label_2"))
self.label_3 = QtGui.QLabel(self.centralWidget)
self.label_3.setGeometry(QtCore.QRect(10, 60, 59, 21))
self.label_3.setObjectName(_fromUtf8("label_3"))
self.label_4 = QtGui.QLabel(self.centralWidget)
self.label_4.setGeometry(QtCore.QRect(10, 100, 111, 21))
self.label_4.setObjectName(_fromUtf8("label_4"))
self.zapisz_btm = QtGui.QPushButton(self.centralWidget)
self.zapisz_btm.setGeometry(QtCore.QRect(20, 270, 80, 23))
self.zapisz_btm.setObjectName(_fromUtf8("zapisz_btm"))
MainWindow.setCentralWidget(self.centralWidget)
self.menuBar = QtGui.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 623, 20))
self.menuBar.setObjectName(_fromUtf8("menuBar"))
self.menuForm = QtGui.QMenu(self.menuBar)
self.menuForm.setObjectName(_fromUtf8("menuForm"))
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.menuBar.addAction(self.menuForm.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.label.setText(_translate("MainWindow", "Opis", None))
self.label_2.setText(_translate("MainWindow", "Adres", None))
self.label_3.setText(_translate("MainWindow", "Tytul", None))
self.label_4.setText(_translate("MainWindow", "Slowa kluczowe", None))
self.zapisz_btm.setText(_translate("MainWindow", "Zapisz", None))
self.menuForm.setTitle(_translate("MainWindow", "Form", None))
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
ex = Ui_MainWindow()
ex.show()
sys.exit(app.exec_())
When I run my code I have error
Traceback (most recent call last):
File "/home/develop/PycharmProjects/untitled/form_window.py", line 18, in <module>
class Ui_MainWindow(QtGui.QMainWindowWidget):
AttributeError: 'module' object has no attribute 'QMainWindowWidget'
I have no idea what I'm doing wrong
I don't see a class QMainWindowWidget in the api: http://pyqt.sourceforge.net/Docs/PyQt4/qtgui.html
Are you sure you don't mean to inherit from QMainWindow instead?

Connecting click events to function for pyqt

This is undoubtedly a simple question, but I cannot seem to get it. All i want to do is run a function on a button click. I have created a .ui and converted it to a .py file and imported it as Ui_Dialog. The gui itself opens up fine and my pushButton is called btn_browseDEM and lineEdit is called lineEdit_DEM. Help??
class MyDialog(QDialog):
def __init__(self):
QDialog.__init__(self)
# Set up the user interface from Designer.
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.btn_browseDEM.clicked.connect(self.btn_browseDEM_clicked)
def btn_browseDEM_clicked(self):
self.ui.lineEdit_DEM.setText('hello')
app = QApplication(sys.argv)
window = QDialog()
gui = MyDialog()
gui.ui.setupUi(window)
window.show()
sys.exit(app.exec_())
converted ui file
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'C:\Python27\Scripts\PyQT\Example1.ui'
#
# Created: Thu Jul 31 20:40:38 2014
# by: PyQt4 UI code generator 4.10.3
#
# 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_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.resize(592, 640)
self.buttonBox = QtGui.QDialogButtonBox(Dialog)
self.buttonBox.setGeometry(QtCore.QRect(230, 600, 341, 32))
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
self.buttonBox.setObjectName(_fromUtf8("buttonBox"))
self.tabWidget = QtGui.QTabWidget(Dialog)
self.tabWidget.setGeometry(QtCore.QRect(20, 20, 551, 571))
self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab"))
self.lineEdit_DEM = QtGui.QLineEdit(self.tab)
self.lineEdit_DEM.setGeometry(QtCore.QRect(50, 83, 301, 20))
self.lineEdit_DEM.setObjectName(_fromUtf8("lineEdit_DEM"))
self.checkBox_2 = QtGui.QCheckBox(self.tab)
self.checkBox_2.setGeometry(QtCore.QRect(50, 250, 141, 17))
self.checkBox_2.setObjectName(_fromUtf8("checkBox_2"))
self.label = QtGui.QLabel(self.tab)
self.label.setGeometry(QtCore.QRect(20, 200, 61, 16))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label.setFont(font)
self.label.setLineWidth(2)
self.label.setObjectName(_fromUtf8("label"))
self.checkBox = QtGui.QCheckBox(self.tab)
self.checkBox.setGeometry(QtCore.QRect(50, 220, 151, 17))
self.checkBox.setObjectName(_fromUtf8("checkBox"))
self.checkBox_3 = QtGui.QCheckBox(self.tab)
self.checkBox_3.setGeometry(QtCore.QRect(50, 280, 141, 17))
self.checkBox_3.setObjectName(_fromUtf8("checkBox_3"))
self.label_4 = QtGui.QLabel(self.tab)
self.label_4.setGeometry(QtCore.QRect(50, 102, 371, 16))
self.label_4.setFrameShadow(QtGui.QFrame.Plain)
self.label_4.setObjectName(_fromUtf8("label_4"))
self.pushButton_2 = QtGui.QPushButton(self.tab)
self.pushButton_2.setGeometry(QtCore.QRect(360, 130, 75, 23))
self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
self.label_3 = QtGui.QLabel(self.tab)
self.label_3.setGeometry(QtCore.QRect(50, 60, 371, 16))
self.label_3.setFrameShadow(QtGui.QFrame.Plain)
self.label_3.setObjectName(_fromUtf8("label_3"))
self.btn_browseDEM = QtGui.QPushButton(self.tab)
self.btn_browseDEM.setGeometry(QtCore.QRect(360, 80, 75, 23))
self.btn_browseDEM.setObjectName(_fromUtf8("btn_browseDEM"))
self.lineEdit_2 = QtGui.QLineEdit(self.tab)
self.lineEdit_2.setGeometry(QtCore.QRect(50, 131, 301, 20))
self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))
self.line_7 = QtGui.QFrame(self.tab)
self.line_7.setGeometry(QtCore.QRect(10, 210, 521, 16))
self.line_7.setLineWidth(2)
self.line_7.setFrameShape(QtGui.QFrame.HLine)
self.line_7.setFrameShadow(QtGui.QFrame.Sunken)
self.line_7.setObjectName(_fromUtf8("line_7"))
self.line_8 = QtGui.QFrame(self.tab)
self.line_8.setGeometry(QtCore.QRect(10, 300, 521, 16))
self.line_8.setFrameShape(QtGui.QFrame.HLine)
self.line_8.setFrameShadow(QtGui.QFrame.Sunken)
self.line_8.setObjectName(_fromUtf8("line_8"))
self.line_9 = QtGui.QFrame(self.tab)
self.line_9.setGeometry(QtCore.QRect(10, 52, 521, 16))
self.line_9.setLineWidth(2)
self.line_9.setFrameShape(QtGui.QFrame.HLine)
self.line_9.setFrameShadow(QtGui.QFrame.Sunken)
self.line_9.setObjectName(_fromUtf8("line_9"))
self.line_10 = QtGui.QFrame(self.tab)
self.line_10.setGeometry(QtCore.QRect(10, 152, 521, 16))
self.line_10.setFrameShape(QtGui.QFrame.HLine)
self.line_10.setFrameShadow(QtGui.QFrame.Sunken)
self.line_10.setObjectName(_fromUtf8("line_10"))
self.label_20 = QtGui.QLabel(self.tab)
self.label_20.setGeometry(QtCore.QRect(20, 40, 61, 16))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_20.setFont(font)
self.label_20.setObjectName(_fromUtf8("label_20"))
self.tabWidget.addTab(self.tab, _fromUtf8(""))
self.tab_3 = QtGui.QWidget()
self.tab_3.setObjectName(_fromUtf8("tab_3"))
self.label_10 = QtGui.QLabel(self.tab_3)
self.label_10.setGeometry(QtCore.QRect(80, 40, 351, 16))
self.label_10.setObjectName(_fromUtf8("label_10"))
self.lineEdit_7 = QtGui.QLineEdit(self.tab_3)
self.lineEdit_7.setGeometry(QtCore.QRect(40, 39, 31, 20))
self.lineEdit_7.setInputMethodHints(QtCore.Qt.ImhDigitsOnly)
self.lineEdit_7.setObjectName(_fromUtf8("lineEdit_7"))
self.label_11 = QtGui.QLabel(self.tab_3)
self.label_11.setGeometry(QtCore.QRect(40, 70, 481, 31))
self.label_11.setWordWrap(True)
self.label_11.setObjectName(_fromUtf8("label_11"))
self.label_12 = QtGui.QLabel(self.tab_3)
self.label_12.setGeometry(QtCore.QRect(30, 10, 491, 16))
self.label_12.setObjectName(_fromUtf8("label_12"))
self.checkBox_8 = QtGui.QCheckBox(self.tab_3)
self.checkBox_8.setGeometry(QtCore.QRect(20, 140, 341, 17))
self.checkBox_8.setObjectName(_fromUtf8("checkBox_8"))
self.lineEdit_8 = QtGui.QLineEdit(self.tab_3)
self.lineEdit_8.setGeometry(QtCore.QRect(40, 100, 81, 20))
self.lineEdit_8.setInputMethodHints(QtCore.Qt.ImhDigitsOnly)
self.lineEdit_8.setObjectName(_fromUtf8("lineEdit_8"))
self.label_17 = QtGui.QLabel(self.tab_3)
self.label_17.setGeometry(QtCore.QRect(50, 190, 351, 16))
self.label_17.setObjectName(_fromUtf8("label_17"))
self.label_15 = QtGui.QLabel(self.tab_3)
self.label_15.setGeometry(QtCore.QRect(100, 271, 351, 16))
self.label_15.setObjectName(_fromUtf8("label_15"))
self.lineEdit_9 = QtGui.QLineEdit(self.tab_3)
self.lineEdit_9.setGeometry(QtCore.QRect(60, 241, 301, 21))
self.lineEdit_9.setObjectName(_fromUtf8("lineEdit_9"))
self.comboBox = QtGui.QComboBox(self.tab_3)
self.comboBox.setGeometry(QtCore.QRect(80, 360, 261, 22))
self.comboBox.setObjectName(_fromUtf8("comboBox"))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.label_14 = QtGui.QLabel(self.tab_3)
self.label_14.setGeometry(QtCore.QRect(60, 221, 461, 16))
self.label_14.setObjectName(_fromUtf8("label_14"))
self.pushButton_4 = QtGui.QPushButton(self.tab_3)
self.pushButton_4.setGeometry(QtCore.QRect(370, 240, 75, 23))
self.pushButton_4.setObjectName(_fromUtf8("pushButton_4"))
self.lineEdit_10 = QtGui.QLineEdit(self.tab_3)
self.lineEdit_10.setGeometry(QtCore.QRect(60, 270, 31, 20))
self.lineEdit_10.setInputMethodHints(QtCore.Qt.ImhDigitsOnly)
self.lineEdit_10.setObjectName(_fromUtf8("lineEdit_10"))
self.label_13 = QtGui.QLabel(self.tab_3)
self.label_13.setGeometry(QtCore.QRect(20, 171, 351, 16))
self.label_13.setObjectName(_fromUtf8("label_13"))
self.lineEdit_12 = QtGui.QLineEdit(self.tab_3)
self.lineEdit_12.setGeometry(QtCore.QRect(60, 460, 301, 21))
self.lineEdit_12.setObjectName(_fromUtf8("lineEdit_12"))
self.label_19 = QtGui.QLabel(self.tab_3)
self.label_19.setGeometry(QtCore.QRect(60, 340, 261, 16))
self.label_19.setObjectName(_fromUtf8("label_19"))
self.label_16 = QtGui.QLabel(self.tab_3)
self.label_16.setGeometry(QtCore.QRect(60, 390, 461, 31))
self.label_16.setFrameShape(QtGui.QFrame.NoFrame)
self.label_16.setWordWrap(True)
self.label_16.setObjectName(_fromUtf8("label_16"))
self.lineEdit_11 = QtGui.QLineEdit(self.tab_3)
self.lineEdit_11.setGeometry(QtCore.QRect(60, 430, 301, 21))
self.lineEdit_11.setObjectName(_fromUtf8("lineEdit_11"))
self.label_18 = QtGui.QLabel(self.tab_3)
self.label_18.setGeometry(QtCore.QRect(50, 320, 351, 16))
self.label_18.setObjectName(_fromUtf8("label_18"))
self.line = QtGui.QFrame(self.tab_3)
self.line.setGeometry(QtCore.QRect(10, 330, 531, 20))
self.line.setLineWidth(2)
self.line.setFrameShape(QtGui.QFrame.HLine)
self.line.setFrameShadow(QtGui.QFrame.Sunken)
self.line.setObjectName(_fromUtf8("line"))
self.line_2 = QtGui.QFrame(self.tab_3)
self.line_2.setGeometry(QtCore.QRect(10, 180, 531, 20))
self.line_2.setLineWidth(2)
self.line_2.setFrameShape(QtGui.QFrame.HLine)
self.line_2.setFrameShadow(QtGui.QFrame.Sunken)
self.line_2.setObjectName(_fromUtf8("line_2"))
self.line_3 = QtGui.QFrame(self.tab_3)
self.line_3.setGeometry(QtCore.QRect(10, 20, 531, 20))
self.line_3.setLineWidth(2)
self.line_3.setFrameShape(QtGui.QFrame.HLine)
self.line_3.setFrameShadow(QtGui.QFrame.Sunken)
self.line_3.setObjectName(_fromUtf8("line_3"))
self.line_4 = QtGui.QFrame(self.tab_3)
self.line_4.setGeometry(QtCore.QRect(10, 150, 531, 20))
self.line_4.setLineWidth(1)
self.line_4.setFrameShape(QtGui.QFrame.HLine)
self.line_4.setFrameShadow(QtGui.QFrame.Sunken)
self.line_4.setObjectName(_fromUtf8("line_4"))
self.line_5 = QtGui.QFrame(self.tab_3)
self.line_5.setGeometry(QtCore.QRect(10, 480, 531, 20))
self.line_5.setLineWidth(1)
self.line_5.setFrameShape(QtGui.QFrame.HLine)
self.line_5.setFrameShadow(QtGui.QFrame.Sunken)
self.line_5.setObjectName(_fromUtf8("line_5"))
self.line_6 = QtGui.QFrame(self.tab_3)
self.line_6.setGeometry(QtCore.QRect(10, 290, 531, 20))
self.line_6.setLineWidth(1)
self.line_6.setFrameShape(QtGui.QFrame.HLine)
self.line_6.setFrameShadow(QtGui.QFrame.Sunken)
self.line_6.setObjectName(_fromUtf8("line_6"))
self.tabWidget.addTab(self.tab_3, _fromUtf8(""))
self.tab_2 = QtGui.QWidget()
self.tab_2.setObjectName(_fromUtf8("tab_2"))
self.lineEdit_3 = QtGui.QLineEdit(self.tab_2)
self.lineEdit_3.setGeometry(QtCore.QRect(24, 68, 31, 20))
self.lineEdit_3.setInputMethodHints(QtCore.Qt.ImhDigitsOnly)
self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3"))
self.label_5 = QtGui.QLabel(self.tab_2)
self.label_5.setGeometry(QtCore.QRect(30, 40, 491, 16))
self.label_5.setObjectName(_fromUtf8("label_5"))
self.label_6 = QtGui.QLabel(self.tab_2)
self.label_6.setGeometry(QtCore.QRect(60, 70, 341, 16))
self.label_6.setObjectName(_fromUtf8("label_6"))
self.label_8 = QtGui.QLabel(self.tab_2)
self.label_8.setGeometry(QtCore.QRect(60, 130, 341, 16))
self.label_8.setObjectName(_fromUtf8("label_8"))
self.lineEdit_5 = QtGui.QLineEdit(self.tab_2)
self.lineEdit_5.setGeometry(QtCore.QRect(24, 128, 31, 20))
self.lineEdit_5.setInputMethodHints(QtCore.Qt.ImhDigitsOnly)
self.lineEdit_5.setObjectName(_fromUtf8("lineEdit_5"))
self.lineEdit_4 = QtGui.QLineEdit(self.tab_2)
self.lineEdit_4.setGeometry(QtCore.QRect(24, 99, 31, 20))
self.lineEdit_4.setInputMethodHints(QtCore.Qt.ImhDigitsOnly)
self.lineEdit_4.setObjectName(_fromUtf8("lineEdit_4"))
self.label_7 = QtGui.QLabel(self.tab_2)
self.label_7.setGeometry(QtCore.QRect(60, 101, 341, 16))
self.label_7.setInputMethodHints(QtCore.Qt.ImhDigitsOnly)
self.label_7.setObjectName(_fromUtf8("label_7"))
self.tabWidget.addTab(self.tab_2, _fromUtf8(""))
self.tab_4 = QtGui.QWidget()
self.tab_4.setObjectName(_fromUtf8("tab_4"))
self.checkBox_7 = QtGui.QCheckBox(self.tab_4)
self.checkBox_7.setGeometry(QtCore.QRect(30, 40, 241, 17))
self.checkBox_7.setObjectName(_fromUtf8("checkBox_7"))
self.label_9 = QtGui.QLabel(self.tab_4)
self.label_9.setGeometry(QtCore.QRect(30, 70, 471, 61))
self.label_9.setWordWrap(True)
self.label_9.setObjectName(_fromUtf8("label_9"))
self.lineEdit_6 = QtGui.QLineEdit(self.tab_4)
self.lineEdit_6.setGeometry(QtCore.QRect(30, 141, 301, 21))
self.lineEdit_6.setObjectName(_fromUtf8("lineEdit_6"))
self.pushButton_3 = QtGui.QPushButton(self.tab_4)
self.pushButton_3.setGeometry(QtCore.QRect(340, 140, 75, 23))
self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
self.tabWidget.addTab(self.tab_4, _fromUtf8(""))
self.retranslateUi(Dialog)
self.tabWidget.setCurrentIndex(0)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), Dialog.accept)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), Dialog.reject)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
self.checkBox_2.setText(_translate("Dialog", "Run depression areas?", None))
self.label.setText(_translate("Dialog", "TOOLS", None))
self.checkBox.setText(_translate("Dialog", "Run overland flow paths?", None))
self.checkBox_3.setText(_translate("Dialog", "Delineate catchments?", None))
self.label_4.setText(_translate("Dialog", "Set directory path where the results should be stored", None))
self.pushButton_2.setText(_translate("Dialog", "Browse", None))
self.label_3.setText(_translate("Dialog", "Set the path to your digital elevation model (must be in the Saga grid format)", None))
self.btn_browseDEM.setText(_translate("Dialog", "Browse", None))
self.label_20.setText(_translate("Dialog", "FOLDERS", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("Dialog", "Inputs", None))
self.label_10.setText(_translate("Dialog", "Set the minimum overland flow path length to be mapped (m)", None))
self.lineEdit_7.setText(_translate("Dialog", "50", None))
self.label_11.setText(_translate("Dialog", "The minimum area (m┬▓) required to initate an overland flow path. To run for multiple areas specify as comma delimited e.g \'1000, 2000, 3000\'", None))
self.label_12.setText(_translate("Dialog", "Overland flow path parameters", None))
self.checkBox_8.setText(_translate("Dialog", "Estimate flows for overland flow paths using the rational method?", None))
self.lineEdit_8.setText(_translate("Dialog", "10000", None))
self.label_17.setText(_translate("Dialog", "Runoff coefficient parameters", None))
self.label_15.setText(_translate("Dialog", "Default runoff coefficient (if grid is not specified)", None))
self.comboBox.setItemText(0, _translate("Dialog", "Ramser Kirpch, Waikato Regional Council", None))
self.comboBox.setItemText(1, _translate("Dialog", "Bransby Williams, Waikato Regional Council", None))
self.comboBox.setItemText(2, _translate("Dialog", "Bransby Williams, Christchurch City Council", None))
self.label_14.setText(_translate("Dialog", "Location of the runoff coefficient grid (must be in the saga grid format)", None))
self.pushButton_4.setText(_translate("Dialog", "Browse", None))
self.lineEdit_10.setText(_translate("Dialog", "0.35", None))
self.label_13.setText(_translate("Dialog", "Please fill in the boxes below if you want flows...", None))
self.lineEdit_12.setText(_translate("Dialog", "10,20,30,60,120,360,720,1440,2880,4320", None))
self.label_19.setText(_translate("Dialog", "Select method for calculating time of concentration", None))
self.label_16.setText(_translate("Dialog", "Rainfall intensities (mm/hr) and durations to be used in the flow calculation (these will be interpolated using the time of concentration to get a corrseponding rainfall intensity)", None))
self.lineEdit_11.setText(_translate("Dialog", "129,92.7,76.6,55.3,33.6,15.3,9.4,5.7,3.5,2.6", None))
self.label_18.setText(_translate("Dialog", "Time of concentration parameters", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("Dialog", "Overland Flow Paths", None))
self.lineEdit_3.setText(_translate("Dialog", "50", None))
self.label_5.setText(_translate("Dialog", "This module creates a lot of polygons, here you can specify filter parameters for the depression areas", None))
self.label_6.setText(_translate("Dialog", "Only depression areas with a volume exceeding xx m2 will be mapped", None))
self.label_8.setText(_translate("Dialog", "Only depression areas with a depth exceeding xx mm will be mapped", None))
self.lineEdit_5.setText(_translate("Dialog", "300", None))
self.lineEdit_4.setText(_translate("Dialog", "500", None))
self.label_7.setText(_translate("Dialog", "Only depression areas with an area exceeding xx m3 will be mapped", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("Dialog", "Depression Areas", None))
self.checkBox_7.setText(_translate("Dialog", "Use overland flow paths generated by script?", None))
self.label_9.setText(_translate("Dialog", "<html><head/><body><p>If you do not want to use overland flow paths created by the script for delineating catchments, then you will need to browse to a shape file. The attribute table of the shape file must have a field named \'X_2\' containing the X co-ordinate of the catchment outlet and a field named \'Y_2\' containing the Y co-ordinate of the cathment outlet</p></body></html>", None))
self.pushButton_3.setText(_translate("Dialog", "Browse", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("Dialog", "Catchments", None))
You might want to show the created gui directly.
app = QApplication(sys.argv)
gui = MyDialog()
gui.show()
sys.exit(app.exec_())

Viewing pyqt4 export before adding code

I am new to python 3.3 and am having some trouble with random simple tasks. I made a gui in qt designer and exported the py code. I added
def show(self):
self.QtGui.show()
sys.exit(self.exec_())
and
MainWindow = Ui_MainWindow(sys.argv)
MainWindow.show()
to the end to try and view the GUI before I add in all the code. Im sure this is possible, I just can not figure it out. My entire code is:
from PyQt4 import QtCore, QtGui
import sys
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(390, 355)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.tabWidget = QtGui.QTabWidget(self.centralwidget)
self.tabWidget.setGeometry(QtCore.QRect(10, 10, 371, 301))
self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
self.TS2 = QtGui.QWidget()
self.TS2.setObjectName(_fromUtf8("TS2"))
self.lineEdit = QtGui.QLineEdit(self.TS2)
self.lineEdit.setGeometry(QtCore.QRect(120, 30, 91, 20))
self.lineEdit.setText(_fromUtf8(""))
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.spinBox = QtGui.QSpinBox(self.TS2)
self.spinBox.setGeometry(QtCore.QRect(120, 70, 42, 22))
self.spinBox.setObjectName(_fromUtf8("spinBox"))
self.pushButton = QtGui.QPushButton(self.TS2)
self.pushButton.setGeometry(QtCore.QRect(140, 230, 91, 23))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.label = QtGui.QLabel(self.TS2)
self.label.setGeometry(QtCore.QRect(20, 30, 91, 16))
self.label.setObjectName(_fromUtf8("label"))
self.label_2 = QtGui.QLabel(self.TS2)
self.label_2.setGeometry(QtCore.QRect(20, 70, 91, 20))
self.label_2.setObjectName(_fromUtf8("label_2"))
self.label_11 = QtGui.QLabel(self.TS2)
self.label_11.setGeometry(QtCore.QRect(20, 170, 91, 21))
self.label_11.setObjectName(_fromUtf8("label_11"))
self.lineEdit_6 = QtGui.QLineEdit(self.TS2)
self.lineEdit_6.setGeometry(QtCore.QRect(120, 170, 131, 20))
self.lineEdit_6.setObjectName(_fromUtf8("lineEdit_6"))
self.pushButton_6 = QtGui.QPushButton(self.TS2)
self.pushButton_6.setGeometry(QtCore.QRect(260, 170, 75, 23))
self.pushButton_6.setObjectName(_fromUtf8("pushButton_6"))
self.line_2 = QtGui.QFrame(self.TS2)
self.line_2.setGeometry(QtCore.QRect(0, 200, 371, 20))
self.line_2.setFrameShape(QtGui.QFrame.HLine)
self.line_2.setFrameShadow(QtGui.QFrame.Sunken)
self.line_2.setObjectName(_fromUtf8("line_2"))
self.tabWidget.addTab(self.TS2, _fromUtf8(""))
self.AGS = QtGui.QWidget()
self.AGS.setObjectName(_fromUtf8("AGS"))
self.lineEdit_2 = QtGui.QLineEdit(self.AGS)
self.lineEdit_2.setGeometry(QtCore.QRect(120, 30, 91, 20))
self.lineEdit_2.setText(_fromUtf8(""))
self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))
self.label_3 = QtGui.QLabel(self.AGS)
self.label_3.setGeometry(QtCore.QRect(20, 30, 91, 16))
self.label_3.setObjectName(_fromUtf8("label_3"))
self.spinBox_2 = QtGui.QSpinBox(self.AGS)
self.spinBox_2.setGeometry(QtCore.QRect(120, 70, 42, 22))
self.spinBox_2.setObjectName(_fromUtf8("spinBox_2"))
self.label_4 = QtGui.QLabel(self.AGS)
self.label_4.setGeometry(QtCore.QRect(20, 70, 91, 20))
self.label_4.setObjectName(_fromUtf8("label_4"))
self.pushButton_2 = QtGui.QPushButton(self.AGS)
self.pushButton_2.setGeometry(QtCore.QRect(140, 230, 91, 23))
self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
self.label_8 = QtGui.QLabel(self.AGS)
self.label_8.setGeometry(QtCore.QRect(20, 110, 91, 21))
self.label_8.setObjectName(_fromUtf8("label_8"))
self.label_10 = QtGui.QLabel(self.AGS)
self.label_10.setGeometry(QtCore.QRect(20, 170, 91, 21))
self.label_10.setObjectName(_fromUtf8("label_10"))
self.lineEdit_5 = QtGui.QLineEdit(self.AGS)
self.lineEdit_5.setGeometry(QtCore.QRect(120, 170, 131, 20))
self.lineEdit_5.setObjectName(_fromUtf8("lineEdit_5"))
self.pushButton_5 = QtGui.QPushButton(self.AGS)
self.pushButton_5.setGeometry(QtCore.QRect(260, 170, 75, 23))
self.pushButton_5.setObjectName(_fromUtf8("pushButton_5"))
self.lineEdit_7 = QtGui.QLineEdit(self.AGS)
self.lineEdit_7.setGeometry(QtCore.QRect(120, 110, 31, 20))
self.lineEdit_7.setObjectName(_fromUtf8("lineEdit_7"))
self.label_12 = QtGui.QLabel(self.AGS)
self.label_12.setGeometry(QtCore.QRect(160, 110, 61, 21))
self.label_12.setObjectName(_fromUtf8("label_12"))
self.line = QtGui.QFrame(self.AGS)
self.line.setGeometry(QtCore.QRect(0, 200, 371, 20))
self.line.setFrameShape(QtGui.QFrame.HLine)
self.line.setFrameShadow(QtGui.QFrame.Sunken)
self.line.setObjectName(_fromUtf8("line"))
self.tabWidget.addTab(self.AGS, _fromUtf8(""))
self.AQT = QtGui.QWidget()
self.AQT.setObjectName(_fromUtf8("AQT"))
self.label_5 = QtGui.QLabel(self.AQT)
self.label_5.setGeometry(QtCore.QRect(20, 30, 91, 16))
self.label_5.setObjectName(_fromUtf8("label_5"))
self.lineEdit_3 = QtGui.QLineEdit(self.AQT)
self.lineEdit_3.setGeometry(QtCore.QRect(120, 30, 91, 20))
self.lineEdit_3.setText(_fromUtf8(""))
self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3"))
self.spinBox_3 = QtGui.QSpinBox(self.AQT)
self.spinBox_3.setGeometry(QtCore.QRect(120, 70, 42, 22))
self.spinBox_3.setObjectName(_fromUtf8("spinBox_3"))
self.label_6 = QtGui.QLabel(self.AQT)
self.label_6.setGeometry(QtCore.QRect(20, 70, 91, 20))
self.label_6.setObjectName(_fromUtf8("label_6"))
self.pushButton_3 = QtGui.QPushButton(self.AQT)
self.pushButton_3.setGeometry(QtCore.QRect(140, 230, 91, 23))
self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
self.dateEdit = QtGui.QDateEdit(self.AQT)
self.dateEdit.setGeometry(QtCore.QRect(120, 110, 110, 22))
self.dateEdit.setObjectName(_fromUtf8("dateEdit"))
self.label_7 = QtGui.QLabel(self.AQT)
self.label_7.setGeometry(QtCore.QRect(20, 110, 91, 21))
self.label_7.setObjectName(_fromUtf8("label_7"))
self.pushButton_4 = QtGui.QPushButton(self.AQT)
self.pushButton_4.setGeometry(QtCore.QRect(260, 170, 75, 23))
self.pushButton_4.setFlat(False)
self.pushButton_4.setObjectName(_fromUtf8("pushButton_4"))
self.lineEdit_4 = QtGui.QLineEdit(self.AQT)
self.lineEdit_4.setGeometry(QtCore.QRect(120, 170, 131, 20))
self.lineEdit_4.setObjectName(_fromUtf8("lineEdit_4"))
self.label_9 = QtGui.QLabel(self.AQT)
self.label_9.setGeometry(QtCore.QRect(20, 170, 91, 21))
self.label_9.setObjectName(_fromUtf8("label_9"))
self.line_3 = QtGui.QFrame(self.AQT)
self.line_3.setGeometry(QtCore.QRect(0, 200, 371, 20))
self.line_3.setFrameShape(QtGui.QFrame.HLine)
self.line_3.setFrameShadow(QtGui.QFrame.Sunken)
self.line_3.setObjectName(_fromUtf8("line_3"))
self.tabWidget.addTab(self.AQT, _fromUtf8(""))
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 390, 21))
self.menubar.setObjectName(_fromUtf8("menubar"))
self.menuFile = QtGui.QMenu(self.menubar)
self.menuFile.setObjectName(_fromUtf8("menuFile"))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.actionExit = QtGui.QAction(MainWindow)
self.actionExit.setObjectName(_fromUtf8("actionExit"))
self.menuFile.addAction(self.actionExit)
self.menubar.addAction(self.menuFile.menuAction())
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(2)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.pushButton.setText(_translate("MainWindow", "Execute", None))
self.label.setText(_translate("MainWindow", "XXXXXXXXX:", None))
self.label_2.setText(_translate("MainWindow", "xXXXXXXXXXXX:", None))
self.label_11.setText(_translate("MainWindow", "XXXXXXXXXX:", None))
self.pushButton_6.setText(_translate("MainWindow", "Browse", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.TS2), _translate("MainWindow", "XXXXXX", None))
self.label_3.setText(_translate("MainWindow", "XXXXXXXX:", None))
self.label_4.setText(_translate("MainWindow", "XXXXXXXXXXX:", None))
self.pushButton_2.setText(_translate("MainWindow", "Execute", None))
self.label_8.setText(_translate("MainWindow", "xXXXXXXXX:", None))
self.label_10.setText(_translate("MainWindow", "XXXXXXXX:", None))
self.pushButton_5.setText(_translate("MainWindow", "Browse", None))
self.label_12.setText(_translate("MainWindow", "XXXXXX", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.AGS), _translate("MainWindow", "XXXXXX", None))
self.label_5.setText(_translate("MainWindow", "XXXX:", None))
self.label_6.setText(_translate("MainWindow", "XXXXX:", None))
self.pushButton_3.setText(_translate("MainWindow", "Execute", None))
self.dateEdit.setDisplayFormat(_translate("MainWindow", "yyyy-MM-dd", None))
self.label_7.setText(_translate("MainWindow", "XXXXX:", None))
self.pushButton_4.setText(_translate("MainWindow", "Browse", None))
self.label_9.setText(_translate("MainWindow", "xXXXXXX:", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.AQT), _translate("MainWindow", "XXXXX", None))
self.menuFile.setTitle(_translate("MainWindow", "File", None))
self.actionExit.setText(_translate("MainWindow", "Exit", None))
def show(self):
self.QtGui.show()
sys.exit(self.exec_())
MainWindow = Ui_MainWindow(sys.argv)
MainWindow.show()
And the error that I get is:
TypeError: object.__new__() takes no parameters
Now Im not even sure this error is related to my problem, but I am at the end of my rope trying to simply see this UI. No functionality needed yet.
Thank you in advance!
You don't need to do this by hand. pyuic4 has an option to add this: -x. Then you can just run the pyuic4 generated code and you'll see the widget. For example:
pyuic4 -x -o output.py input.ui

Categories

Resources