
| Current Path : /proc/thread-self/root/home/ift/52_procpy/dataninja/workbench/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //proc/thread-self/root/home/ift/52_procpy/dataninja/workbench/qtwzx.py |
#coding=utf-8
import sys
from PyQt5.QtGui import QIcon,QPainter,QColor,QFont,QPen,QFileOpenEvent
from PyQt5.QtCore import Qt,QBasicTimer
from PyQt5.QtWidgets import (QLabel,QMainWindow,QMenu,QAction,qApp,QMenu,QProgressBar,QWidget,QGridLayout,QProgressDialog,QMessageBox,QLCDNumber,QPushButton, QDial,QSlider, QApplication,QHBoxLayout, QVBoxLayout)
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUi()
def initUi(self):
#self.statusBar().showMessage('ready')
self.pbar = QProgressBar(self)
self.pbar.setGeometry(30, 40, 200, 25)
self.btn_start = QPushButton('Start', self)
self.btn_start.move(40, 100)
self.btn_start.clicked.connect(self.doStartAction)
self.btn_stop = QPushButton('Stop', self)
self.btn_stop.move(40, 120)
self.btn_stop.clicked.connect(self.doStopAction)
self.btn_new = QPushButton('New', self)
self.btn_new.move(40, 140)
self.btn_new.clicked.connect(self.doNewAction)
self.bt_much=QPushButton("select",self)
self.bt_much.setGeometry(300, 100, 100, 25)
#self.bt_much.move(400,100,200,25)
self.bt_correct = QPushButton("sure", self)
self.bt_correct.setGeometry(400, 100, 50, 25)
#self.bt_correct.move(600, 100,100,25)
menu =QMenu(self)
menu.addAction('a')
menu.addSeparator()
menu.addAction('b')
menu.addSeparator()
menu.addAction('c')
menu.addSeparator()
menu.addAction('d')
self.bt_much.setMenu(menu)
self.label_slide = QLabel('slide1: 0 ', self)
self.label_slide.setGeometry(180, 220, 100, 100)
self.slide = QSlider(self) # ,Qt.Vertical
self.slide.setGeometry(200, 100, 25, 100)
self.slide.setMinimum(0)
self.slide.setMaximum(99)
self.slide.setTickPosition(QSlider.TicksBothSides)
self.slide.valueChanged[int].connect(self.changevalue)
#self.slide.move(200,100,200,25)
self.dial = QDial(self)
self.dial.setGeometry(350, 150, 100, 100)
#self.dial.setStyleSheet("color:red")
#self.dial.move(600,300)
self.dial.setMinimum(0)
self.dial.setMaximum(99)
self.painter=QPainter()
self.painter.begin(self)
self.drawRectangles(self.painter)
self.painter.end()
#self.painter.setPen(QPen(QColor(0,160,230),10))
#self.painter.drawRect(40,400,100,100)
#font=QFont()
#font.setFamily("Microsoft YaHei")
#font.setPointSize(50)
#font.setItalic(1)
#self.painter.setFont(font)
#rect=(40,180,200,200)
#self.painter.drawText(rect,"QT")
self.timer = QBasicTimer()
self.step = 0
self.setGeometry(300, 300, 800, 600)
self.setWindowTitle('Demo for Button and Progress bar')
# self.setStyleSheet('QWidget{background-color:rgb(173,216,230)}')
self.setStyleSheet('QWidget{background-color:rgb(173,216,230)}'
#'QMainWindow{background-color:rgb(0,0,0)}'
'QDial{background-color:rgb(255,0,0)}'
#'QFrame{background-color:rgb(0,255,0)}'
#'QTextBrowser{background-color:rgb(0,0,255)}')
)
#menubar = self.menuBar()
#fileMenu = menubar.addMenu('文件(&F)')
#fileMenu.addAction(newAct)
#fileMenu.addMenu(saveMenu)
#fileMenu.addSeparator()
#fileMenu.addAction(exitAct)
self.show()
#testgit =0
#grid = QGridLayout()
#self.setLayout(grid)
#lcd = QLCDNumber(self)
#self.pb11 = QProgressBar(self)
#self.pb11.setGeometry(30,40,200,25)
#grid.addWidget(self.bt4, 9, 1)
# self.dial = QDial(self)
#self.dial.move(250,200)
#grid.addWidget(dial, 5,5)
#slide = QSlider(self) # ,Qt.Vertical
#self.slide.move(200,100)
#grid.addWidget(slide, 3, 3)
#self.pb11.setOrientation(Qt.Horizontal)
# grid.addWidget(self.pb11, 1, 1)
#self.pb11.setFormat("%p")
#self.pb11.setInvertedAppearance(True)
#self.bt1.clicked.connect(self.running)
def changevalue(self, value):
#sender = self.sender()
#self.slide.setValue(value)
print(value)
self.label_slide.setText('slide1:' + str(value))
def showDialog(self):
num = int(100000)
progress = QProgressDialog(self)
progress.setWindowTitle("please wait")
progress.setLabelText("doing...")
progress.setCancelButtonText("cancel")
progress.setMinimumDuration(5)
progress.setWindowModality(Qt.WindowModal)
progress.setRange(0, num)
for i in range(num):
progress.setValue(i)
if progress.wasCanceled():
QMessageBox.warning(self, "notice", "failed")
break
else:
progress.setValue(num)
QMessageBox.information(self, "notice", "success")
def timerEvent(self, e):
if self.step >= 100:
self.timer.stop()
self.btn_start.setText('Completion')
self.step=0
return
self.step = self.step + 1
self.pbar.setValue(self.step)
def doStartAction(self, value):
if self.timer.isActive():
self.timer.stop()
self.btn_start.setText('Start')
else:
self.timer.start(100, self)
self.btn_start.setText('Stop')
def doStopAction(self, value):
if self.timer.isActive():
self.timer.stop()
self.btn_stop.setText('Start')
else:
self.timer.start(100, self)
self.btn_start.setText('stop')
def doNewAction(self, value):
if self.timer.isActive():
self.timer.stop()
self.step = 0
self.timer.start(100, self)
self.btn_new.setText('new')
else:
self.step=0
self.timer.start(100, self)
self.btn_new.setText('new')
def drawRectangles(self, qp):
col = QColor(0, 0, 0)
col.setNamedColor('#d4d4d4')
qp.setPen(col)
qp.setBrush(QColor(200, 0, 0))
qp.drawRect(400, 200, 90, 60)
qp.setBrush(QColor(255, 80, 0, 160))
qp.drawRect(40, 200, 90, 60)
qp.setBrush(QColor(25, 0, 90, 200))
qp.drawRect(40, 200, 90, 60)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())