Clicking on QPushButton
gives the following error:
Traceback (most recent call last): File "listageneral.py", line 59, in adios self.close() AttributeError: 'Ui_Dialog' object has no attribute 'close'
This is the code:
import sys
from PyQt4 import QtCore, QtGui, uic
import sqlite3
form_class = uic.loadUiType("listageneral.ui")[0]
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 iniciarbase(self):
with sqlite3.connect('condo3.db') as con:
cursor = con.cursor()
cursor.execute("SELECT * FROM aptos")
self.lista.setRowCount(0)
for row_number, row_data in enumerate(cursor):
self.lista.insertRow(row_number)
for column_number, data in enumerate(row_data):
self.lista.setItem(row_number, column_number, QtGui.QTableWidgetItem(str(data)))
self.lista.resizeColumnToContents(column_number)
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.resize(750, 580)
self.pushButton = QtGui.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(210, 540, 75, 23))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.lista = QtGui.QTableWidget(Dialog)
self.lista.setGeometry(QtCore.QRect(30, 50, 700, 461))
self.lista.setRowCount(111)
self.lista.setColumnCount(4)
self.lista.setObjectName(_fromUtf8("lista"))
self.label = QtGui.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(100, 0, 301, 31))
self.label.setObjectName(_fromUtf8("label"))
QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL('clicked()'),self.adios)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
self.iniciarbase()
def adios(self):
self.close()
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
self.pushButton.setText(_translate("Dialog", "Cerrar", None))
self.label.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:16pt;\">Listado General de Propietarios</span></p></body></html>", None))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Dialog = QtGui.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
Edit:
When trying to apply Dialog.close()
in the QMainWindow I get the following error:
Traceback (most recent call last):
File "C:\Users\marco\Downloads\Python\PyQt\Condominio\listageneral.py", line 59, in adios
Dialog.close()
NameError: name 'Dialog' is not defined
This is the code:
from PyQt4 import QtCore, QtGui
from listageneral import *
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 dialogo(self, checked=None):
if checked==None: return
dialog = QtGui.QDialog()
dialog.ui = Ui_Dialog()
dialog.ui.setupUi(dialog)
dialog.setAttribute(QtCore.Qt.WA_DeleteOnClose)
dialog.exec_()
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(714, 600)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.tabWidget = QtGui.QTabWidget(self.centralwidget)
self.tabWidget.setGeometry(QtCore.QRect(20, 40, 661, 401))
self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab"))
self.listgen = QtGui.QPushButton(self.tab)
self.listgen.setGeometry(QtCore.QRect(30, 60, 75, 23))
self.listgen.setObjectName(_fromUtf8("listgen"))
self.listgen.clicked.connect(self.dialogo)
self.tabWidget.addTab(self.tab, _fromUtf8(""))
self.tab_2 = QtGui.QWidget()
self.tab_2.setObjectName(_fromUtf8("tab_2"))
self.tabWidget.addTab(self.tab_2, _fromUtf8(""))
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.listgen.setText(_translate("MainWindow", "Lista General", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Consulta", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2", 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_())