Форум сайта python.su
Доброго времени суток. Игрался и разбирался с PyQt. Сделал некоторую форму.
import sys from PyQt4 import QtCore, QtGui import datetime try: _fromUtf8 = QtCore.QString.fromUtf8 except: _fromUtf8 = lambda s: s class Ui_MainWindow(QtGui.QWidget): def __init__(self): super(Ui_MainWindow, self).__init__() self.nameWindowTitle = "MainWindowRequest" def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(500, 440) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.datePlanned = QtGui.QDateEdit(self.centralwidget) self.datePlanned.setGeometry(QtCore.QRect(40, 80, 201, 22)) self.datePlanned.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) self.datePlanned.setCorrectionMode(QtGui.QAbstractSpinBox.CorrectToPreviousValue) self.datePlanned.setDate(datetime.date.today()) self.datePlanned.setCalendarPopup(True) self.datePlanned.setObjectName(_fromUtf8("datePlanned")) self.dateCreation = QtGui.QDateEdit(self.centralwidget) self.dateCreation.setGeometry(QtCore.QRect(40, 40, 201, 22)) self.dateCreation.setReadOnly(True) self.dateCreation.setButtonSymbols(QtGui.QAbstractSpinBox.NoButtons) self.dateCreation.setObjectName(_fromUtf8("dateCreation")) self.dateCreation.setDate(datetime.date.today()) self.radioButtonPaper = QtGui.QRadioButton(self.centralwidget) self.radioButtonPaper.setGeometry(QtCore.QRect(150, 130, 82, 17)) self.radioButtonPaper.setChecked(True) self.radioButtonPaper.setObjectName(_fromUtf8("radioButtonPaper")) self.radioButtonWeb = QtGui.QRadioButton(self.centralwidget) self.radioButtonWeb.setGeometry(QtCore.QRect(150, 150, 82, 17)) self.radioButtonWeb.setObjectName(_fromUtf8("radioButtonWeb")) self.label = QtGui.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(40, 130, 81, 20)) self.label.setObjectName(_fromUtf8("label")) self.labelCreation = QtGui.QLabel(self.centralwidget) self.labelCreation.setGeometry(QtCore.QRect(40, 23, 160, 20)) self.labelCreation.setObjectName(_fromUtf8("labelCreation")) self.labelPlanned = QtGui.QLabel(self.centralwidget) self.labelPlanned.setGeometry(QtCore.QRect(40, 63, 160, 20)) self.labelPlanned.setObjectName(_fromUtf8("labelPlanned")) self.labelUserName = QtGui.QLabel(self.centralwidget) self.labelUserName.setGeometry(QtCore.QRect(300, 23, 161, 20)) self.labelUserName.setObjectName(_fromUtf8("labelUserName")) self.labelTextEdit = QtGui.QLabel(self.centralwidget) self.labelTextEdit.setGeometry(QtCore.QRect(40, 173, 160, 20)) self.labelTextEdit.setObjectName(_fromUtf8("labelTextEdit")) self.lineEdit = QtGui.QLineEdit(self.centralwidget) self.lineEdit.setGeometry(QtCore.QRect(300, 40, 161, 20)) self.lineEdit.setReadOnly(True) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.pushButton = QtGui.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(70, 360, 131, 23)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton_2 = QtGui.QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(300, 360, 131, 23)) self.pushButton_2.setObjectName(_fromUtf8("pushButton_2")) self.plainTextEdit = QtGui.QPlainTextEdit(self.centralwidget) self.plainTextEdit.setGeometry(QtCore.QRect(40, 190, 421, 151)) self.plainTextEdit.setPlainText(_fromUtf8("")) self.plainTextEdit.setObjectName(_fromUtf8("plainTextEdit")) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 500, 20)) self.menubar.setObjectName(_fromUtf8("menubar")) self.menu = QtGui.QMenu(self.menubar) self.menu.setObjectName(_fromUtf8("menu")) 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.setCheckable(True) self.actionExit.setObjectName(_fromUtf8("actionExit")) self.menu.addAction(self.actionExit) self.menubar.addAction(self.menu.menuAction()) self.retranslateUi(MainWindow) QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), lambda :self.onPushButtonClickSendRequest(MainWindow)) #QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL(_fromUtf8("clicked()")), self.showTable) QtCore.QObject.connect(self.actionExit, QtCore.SIGNAL(_fromUtf8("triggered()")), MainWindow.close) QtCore.QMetaObject.connectSlotsByName(MainWindow) def showTable(self): pass def showDialogError(self, text): QtGui.QMessageBox.critical(self, self.toUtf("Ошибка"), self.toUtf(text), QtGui.QMessageBox.Ok) def showDialogSuccess(self, text): QtGui.QMessageBox.information(self, self.toUtf("Отлично"), self.toUtf(text), QtGui.QMessageBox.Ok) def onPushButtonClickSendRequest(self, MWnd): #нечто сотворяется MWnd.close() def toUtf(self, text): return QtGui.QApplication.translate("MainWindow", text, None, QtGui.QApplication.UnicodeUTF8) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(self.toUtf(self.nameWindowTitle)) self.lineEdit.setText(self.toUtf("Noname")) self.labelUserName.setText(self.toUtf("Ваше имя в системе")) self.labelTextEdit.setText(self.toUtf("Описание")) self.labelCreation.setText(self.toUtf("Дата сегодня")) self.labelPlanned.setText(self.toUtf("Запланированая дата")) self.radioButtonPaper.setText(self.toUtf("abc")) self.radioButtonWeb.setText(self.toUtf("def")) self.label.setText(self.toUtf("Тип")) self.pushButton.setText(self.toUtf("Сформировать запрос")) self.pushButton_2.setText(self.toUtf("Просмотр запросов")) self.menu.setTitle(self.toUtf("Меню")) self.actionExit.setText(self.toUtf("Выход")) def main(): app = QtGui.QApplication(sys.argv) MainWind = QtGui.QMainWindow() form = Ui_MainWindow() form.setupUi(MainWind) desktop = QtGui.QApplication.desktop().availableGeometry() x, y = (desktop.width() - MainWind.width())//2, (desktop.height() - MainWind.height())//2 MainWind.move(x, y) MainWind.show() sys.exit(app.exec_()) if __name__=="__main__": main()
import sys from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class TableLedData(QtGui.QTableWidget): def __init__(self, structdata, *args): QtGui.QTableWidget.__init__(self, *args) self.data = structdata self.col, self.row = args self.setTable() self.setData() self.current = 0, 0 def setData(self): for n in range(self.col): color=self.setComboBoxTable(n, int(self.data[n][0])) for m in range(1, self.row): newitem = QtGui.QTableWidgetItem(self.data[n][m]) self.setItem(n, m, newitem) self.item(n, m).setBackgroundColor(color) def getColor(self, comboBoxTable): iCur = comboBoxTable.currentIndex() if iCur==0: return(QtGui.QColor(255, 0, 150)) elif iCur==1: return(QtGui.QColor(0, 255, 0)) elif iCur==2: return(QtGui.QColor(0, 0, 255)) def setPalette_ComboBox(self, comboBoxTable): color = self.getColor(comboBoxTable) palette = QtGui.QPalette() brush = QtGui.QBrush(color) brush.setStyle(QtCore.Qt.SolidPattern) palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush) brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) brush.setStyle(QtCore.Qt.SolidPattern) palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Highlight, brush) comboBoxTable.setPalette(palette) return(color) def setComboBoxTable(self, col, iCur): comboBoxTable=QtGui.QComboBox() comboBoxTable.setObjectName("comboBoxTable_"+str(col)) QtCore.QObject.connect(comboBoxTable, QtCore.SIGNAL(_fromUtf8("currentIndexChanged(int)")), lambda :self.setColorCol(comboBoxTable)) self.setCellWidget(col, 0, comboBoxTable) comboBoxTable.addItem(_fromUtf8("One")) comboBoxTable.addItem(_fromUtf8("Two")) comboBoxTable.addItem(_fromUtf8("Tree")) comboBoxTable.setCurrentIndex(iCur) color=self.setPalette_ComboBox(comboBoxTable) return(color) def setColorCol(self, comboBoxTable): n = int(comboBoxTable.objectName()[14:]) color = self.setPalette_ComboBox(comboBoxTable) for m in range(1, self.row): newitem = QtGui.QTableWidgetItem(self.data[n][m]) self.setItem(n, m, newitem) self.item(n, m).setBackgroundColor(color) def setTable(self): self.verticalHeader().setDefaultSectionSize(20) #self.setSortingEnabled(True) self.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.setAlternatingRowColors(True) self.setObjectName(_fromUtf8("tableWidget")) self.setWordWrap(False) self.setGridStyle(QtCore.Qt.SolidLine) self.setShowGrid(True) self.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) QtCore.QObject.connect(self, QtCore.SIGNAL(_fromUtf8("clicked(QModelIndex)")), self.current) def current(self): cur_col = self.currentColumn() cur_row = self.currentRow() self.current = cur_col, cur_row print(cur_col, cur_row) class Ui_Form(QtGui.QWidget): def __init__(self, dataForTable, col, row): super(Ui_Form, self).__init__() self.data, self.col, self.row = dataForTable, col, row def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(550, 350) Form.setWindowModality(QtCore.Qt.WindowModal) self.gridLayoutWidget = QtGui.QWidget(Form) self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, Form.width(), Form.height())) self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget")) self.gridLayout = QtGui.QGridLayout(self.gridLayoutWidget) self.gridLayout.setContentsMargins(10, 15, 10, 15) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.pushButton_del = QtGui.QPushButton(self.gridLayoutWidget) self.pushButton_del.setObjectName(_fromUtf8("pushButton_del")) self.horizontalLayout.addWidget(self.pushButton_del) self.pushButton_block = QtGui.QPushButton(self.gridLayoutWidget) self.pushButton_block.setObjectName(_fromUtf8("pushButton_block")) self.horizontalLayout.addWidget(self.pushButton_block) self.pushButton_cansel = QtGui.QPushButton(self.gridLayoutWidget) self.pushButton_cansel.setObjectName(_fromUtf8("pushButton_cansel")) self.horizontalLayout.addWidget(self.pushButton_cansel) self.gridLayout.addLayout(self.horizontalLayout, 2, 1, 1, 1) self.tableWidget = TableLedData(self.data, self.col, self.row) self.gridLayout.addWidget(self.tableWidget, 1, 1, 1, 1) self.retranslateUi(Form) QtCore.QObject.connect(self.pushButton_cansel, QtCore.SIGNAL(_fromUtf8("clicked()")), Form.close) QtCore.QMetaObject.connectSlotsByName(Form) def toUtf(self, text): return QtGui.QApplication.translate("Form", text, None, QtGui.QApplication.UnicodeUTF8) def retranslateUi(self, Form): Form.setWindowTitle(self.toUtf("123S")) self.pushButton_del.setText(self.toUtf("Удалить")) self.pushButton_block.setText(self.toUtf("Блокировать")) self.pushButton_cansel.setText(self.toUtf("Закрыть")) def main(): lista = ['0', 'aa', 'ab', 'ac', 'ad'] listb = ['1', 'ba', 'bb', 'bc', 'bd'] listc = ['2', 'ca', 'cb', 'cc', 'cd'] listd = ['0', 'da', 'db', 'dc', 'dd'] liste = ['1', 'ea', 'eb', 'ec', 'ed'] listf = ['1', 'fa', 'fb', 'fc', 'fd'] dataFromDB = lista, listb, listc, listd, liste, listf col, row = len(dataFromDB), len(dataFromDB[0]) app = QtGui.QApplication(sys.argv) MainWind = QtGui.QMainWindow() form = Ui_Form(dataFromDB, col, row) form.setupUi(MainWind) MainWind.show() sys.exit(app.exec_()) if __name__=="__main__": main()
Офлайн