代码拉取完成,页面将自动刷新
#pyqt窗口文件。Example为窗口继承类
import sys
from PyQt5.QtWidgets import (QApplication,QWidget,QToolTip,QPushButton,QHBoxLayout,QVBoxLayout,QLineEdit,
QInputDialog,QSlider,QMessageBox,QDesktopWidget,QAction,qApp,QMenu,QLabel,
QFrame,QColorDialog,QSizePolicy,QFontDialog,QFileDialog,QTextEdit,QCheckBox,QProgressBar,QSplitter,QStyleFactory,
QComboBox,QListView, QMessageBox)
from PyQt5.QtGui import QIcon
from PyQt5.QtGui import QFont
from PyQt5.QtCore import QStringListModel
from PyQt5.QtCore import QCoreApplication
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtCore import Qt,QSize
from PyQt5.QtGui import QPixmap,QStandardItem,QStandardItemModel
from PyQt5.QtCore import QBasicTimer
class Example(QMainWindow):
#初始化
def __init__(self):
super().__init__()
self.initUI()
#allvlay:上下分层的全局垂直结构
#imgbox:上层水平布局
#imgright:右侧菜单栏
#toolbox:下层水平布局
#toolright:下层右侧工具栏
#toolmid:下层中间数据显示栏
#toolleft:下层左侧工具栏
def initUI(self):
#上层布局
imgbox = QHBoxLayout()
self.lbo = QLabel("")
self.lbo.setFixedSize(850,600)
self.lbo.setScaledContents(True)
self.lbo.move(250, 200)
# img_whole=QVBoxLayout()
# top=QHBoxLayout()
# bottom=QHBoxLayout()
# img_second=QFrame(self)
# img_second.setStyleSheet("border-radius:10px;border:3px solid rgb(250, 200,109)")
# img_second.setLineWidth(3)
# img_second.setFixedSize(400, 300)
#
# img_third = QFrame(self)
# img_third.setStyleSheet("border-radius:10px;border:3px solid rgb(250, 200,109)")
# img_third.setLineWidth(3)
# img_third.setFixedSize(400, 300)
#
# img_forth = QFrame(self)
# img_forth.setStyleSheet("border-radius:10px;border:3px solid rgb(250, 200,109)")
# img_forth.setLineWidth(3)
# img_forth.setFixedSize(400, 300)
#
# top.addWidget(img_second)
# top.addWidget(img_third)
# top.addWidget(img_forth)
#
# img_fifth = QFrame(self)
# img_fifth.setStyleSheet("border-radius:10px;border:3px solid rgb(250, 200,109)")
# img_fifth.setLineWidth(3)
# img_fifth.setFixedSize(400, 300)
# img_sixth = QFrame(self)
# img_sixth.setStyleSheet("border-radius:10px;border:3px solid rgb(250, 200,109)")
# img_sixth.setLineWidth(3)
# img_sixth.setFixedSize(400, 300)
# img_seventh = QFrame(self)
# img_seventh.setStyleSheet("border-radius:10px;border:3px solid rgb(250, 200,109)")
# img_seventh.setLineWidth(3)
# img_seventh.setFixedSize(400, 300)
# bottom.addWidget(img_fifth)
# bottom.addWidget(img_sixth)
# bottom.addWidget(img_seventh)
# img_whole.addLayout(top)
# img_whole.addLayout(bottom)
imgright = QFrame(self)
imgright.setFrameShape(QFrame.Panel)
imgright.setFrameShadow(QFrame.Sunken)
imgright.setLineWidth(3)
imgright.setFixedSize(400, 600)
imgbox.addSpacing(250)
# imgbox.addLayout(img_whole)
imgbox.addWidget(self.lbo)
imgbox.addSpacing(250)
imgbox.addWidget(imgright)
#下层布局
toolbox = QHBoxLayout()
toolleft = QFrame(self) #QFrame边框设置
toolleft.setFrameShape(QFrame.Panel)
toolleft.setFrameShadow(QFrame.Sunken)
toolleft.setLineWidth(3)
toolleft.setFixedSize(1000,300)
toolmid = QFrame(self)
toolmid.setFrameShape(QFrame.Panel)
toolmid.setFrameShadow(QFrame.Sunken)
toolmid.setLineWidth(3)
toolmid.setFixedSize(350, 300)
self.toolright = QFrame(self)
self.toolright.setFrameShape(QFrame.Panel)
self.toolright.setFrameShadow(QFrame.Sunken)
self.toolright.setLineWidth(3)
#将左右中三栏加入到下层布局
toolbox.addWidget(toolleft)
toolbox.addWidget(toolmid)
toolbox.addWidget(self.toolright)
#按钮
lbs=QLabel('来源',imgright)
lbs.move(20,120)
QToolTip.setFont(QFont('SansSerif', 10))
self.setToolTip('This is a <b>Detection interface</b>') #设置按钮备注
allvlay = QVBoxLayout()
self.btn = QPushButton('连续采样', imgright)
self.btn.setToolTip('This is a <b>Sampling</b> button')
self.btn.resize(self.btn.sizeHint())
self.btn.setMinimumSize(10,30)
#btn.clicked.connect(img.imgprocess.imgs)
self.btn.move(80,110)
self.btn2 = QPushButton('本地', imgright)
self.btn2.setToolTip('This is a <b>local</b> button')
self.btn2.resize(self.btn2.sizeHint())
self.btn2.setMinimumSize(10, 30)
self.btn2.move(80,160)
self.btn3 = QPushButton('last', imgright)
self.btn3.resize(self.btn3.sizeHint())
self.btn3.setMinimumSize(10, 30)
self.btn3.move(80, 210)
self.btn4 = QPushButton('next', imgright)
self.btn4.resize(self.btn4.sizeHint())
self.btn4.setMinimumSize(10, 30)
self.btn4.move(230, 210)
self.btn5 = QPushButton(imgright)
self.btn5.setIcon(QIcon(QPixmap("C:\\Users\\Lenovo\\Pictures\\book.png")))#设置图标
self.btn5.setMinimumSize(20,20)
#self.btn5.clicked.connect(self.showfile)
self.btn5.move(230, 160)
self.btn6=QPushButton('全机位图',imgright)
self.btn6.setToolTip('will show the <b>whole</b> seat')
self.btn6.resize(self.btn6.sizeHint())
self.btn6.setMinimumSize(10, 30)
self.btn6.move(250, 450)
#曝光滑动条
lbt=QLabel('曝光',imgright)
lbt.move(20,280)
slid = QSlider(Qt.Horizontal, imgright)
slid.setFocusPolicy(Qt.NoFocus)
slid.setGeometry(90, 280, 200, 20)
#slid.valueChanged[int].connect(self.changeValue) #功能连接函数
#位机按钮
self.lbr = QLabel("位机", imgright)
self.combo = QComboBox(imgright)
self.combo.addItem("一号")
self.combo.addItem("二号")
self.combo.addItem("三号")
self.combo.addItem("四号")
self.combo.addItem("五号")
self.combo.move(140, 50)
self.lbr.move(240, 50)
#combo.activated[str].connect(self.onActivated)功能联接函数
#下半位工具栏
lba = QLabel("尺寸测量", toolleft)
self.comboa = QComboBox(toolleft)
self.comboa.addItem("thickness")
self.comboa.addItem("internal_diameter")
self.comboa.addItem("external diameter")
self.comboa.move(180, 40)
lba.move(70, 40)
# combo.activated[str].connect(self.onActivated)
lbb = QLabel("可容忍度", toolleft)
self.combob = QComboBox(toolleft)
self.combob.addItem("1")
self.combob.addItem("2")
self.combob.addItem("3")
self.combob.move(180, 90)
lbb.move(70, 90)
# combob.activated[str].connect(self.onActivated)
lbc = QLabel("算法", toolleft)
self.comboc = QComboBox(toolleft)
self.comboc.addItem("tradition")
self.comboc.addItem("dplearning")
self.comboc.move(180, 140)
lbc.move(70, 140)
# comboc.activated[str].connect(self.onActivated)
lbd = QLabel("模型", toolleft)
self.combod = QComboBox(toolleft)
self.combod.addItem("classification")
self.combod.addItem("detetction")
self.combod.addItem("segmentation")
self.combod.move(180, 190)
lbd.move(70, 190)
# combod.activated[str].connect(self.onActivated)
self.begin = QPushButton('Run', toolleft)
self.begin.move(500, 80)
#self.begin.clicked.connect(self.showDialog)
#开始,暂停按钮 用于全流程连续采样检测
quterun=QPushButton(toolleft)
quterun.setIcon(QIcon(QPixmap("C:\\Users\\Lenovo\\Pictures\\begin.png")))
quterun.move(610,80)
self.stop = QPushButton('Stop', toolleft)
self.stop.move(700, 80)
# self.stop.clicked.connect(self.showDialog)
qutestop = QPushButton(toolleft)
qutestop.setIcon(QIcon(QPixmap("C:\\Users\\Lenovo\\Pictures\\stop.png")))
qutestop.move(810, 80)
self.pbar = QProgressBar(toolleft)
self.pbar.setGeometry(500, 150, 400, 30)
self.begin.clicked.connect(self.doAction)
self.timer = QBasicTimer()
self.step = 0
#中部输出的标签
outa=QLabel("外径",toolmid)
outa.move(50,40)
outb = QLabel("内径", toolmid)
outb.move(50,80)
outc = QLabel("厚度", toolmid)
outc.move(50, 120)
outd = QLabel("次品数", toolmid)
outd.move(50, 160)
oute = QLabel("缺陷面积", toolmid)
oute.move(50, 200)
self.ola = QLineEdit(toolmid)
self.ola.move(125, 38)
self.olb = QLineEdit(toolmid)
self.olb.move(125, 78)
self.olc = QLineEdit(toolmid)
self.olc.move(125, 118)
self.old = QLineEdit(toolmid)
self.old.move(125, 158)
self.ole = QLineEdit(toolmid)
self.ole.move(125, 198)
textr=QLabel('记录板',self.toolright)
textr.move(155,135)
#显示打开图像数目
self.imgtext=QTextEdit(imgright)
self.imgtext.setFixedSize(100,20)
self.imgtext.move(120,400)
samnumber=QLabel('样本数目',imgright)
samnumber.move(20,400)
#可选择的图像标签栏
self.listView = QListView(self.toolright)
self.listView.setViewMode(QListView.ListMode)
self.listView.setGridSize(QSize(60,25))
self.listView.setIconSize(QSize(20, 20))
self.listView.setFixedSize(390,300)
self.listView.setResizeMode(QListView.Adjust)
self.model = QStandardItemModel()
self.listView.setModel(self.model)
#字体
# word = QPushButton('word', toolright)
# word.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
# word.move(100, 250)
#
# word.clicked.connect(self.showword)
#QMainwindow布局总合
allvlay.addLayout(imgbox)
allvlay.addSpacing(10)
allvlay.addLayout(toolbox)
widget = QWidget()
widget.setLayout(allvlay)
self.setCentralWidget(widget)
#界面上面的菜单栏,未全部连接功能
# 菜单栏
exitAct = QAction(QIcon('C:\\Users\\Lenovo\\Pictures\\qute.jpeg'), '&Exit', self) # 图标,内容
exitAct.setShortcut('Ctrl+Q') # 快捷键
exitAct.setStatusTip('Exit application') # 状态标识
exitAct.triggered.connect(qApp.quit) # 链接动作
self.statusBar()
menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAct)
# 子菜单
impMenu = QMenu('Dimension measurement', self)
impAct = QAction('diam', self)
impAct_t = QAction('thickness', self)
impMenu.addAction(impAct)
impMenu.addAction(impAct_t)
newAct = QAction('Dlearning', self)
fileMenu.addAction(newAct)
fileMenu.addMenu(impMenu)
# 勾选菜单
# self.statusBar=self.statusBar()
self.statusBar().showMessage('Ready')
menubar = self.menuBar()
viewMenu = menubar.addMenu('View')
viewStatAct = QAction('contrast view', self, checkable=True)
viewStatAct.setStatusTip('View statusbar')
viewStatAct.setChecked(True)
viewStatAct.triggered.connect(self.toggleMenu)
viewMenu.addAction(viewStatAct)
# 工具栏
toolAct = QAction(QIcon('C:\\Users\\Lenovo\\Pictures\\mac.png'), 'Exit', self)
toolAct.setShortcut('Ctrl+A')
toolAct.triggered.connect(qApp.quit)
self.toolbar = self.addToolBar('Exit')
self.toolbar.addAction(toolAct)
toolAct2 = QAction(QIcon('C:\\Users\\Lenovo\\Pictures\\bag.png'), 'Exit', self)
toolAct2.setShortcut('Ctrl+B')
toolAct2.triggered.connect(qApp.quit)
self.toolbar.addAction(toolAct2)
toolAct3 = QAction(QIcon('C:\\Users\\Lenovo\\Pictures\\save.png'), 'Exit', self)
toolAct3.setShortcut('Ctrl+C')
toolAct3.triggered.connect(qApp.quit)
self.toolbar.addAction(toolAct3)
toolAct4 = QAction(QIcon('C:\\Users\\Lenovo\\Pictures\\anset.png'), 'Exit', self)
toolAct4.setShortcut('Ctrl+C')
toolAct4.triggered.connect(qApp.quit)
self.toolbar.addAction(toolAct4)
#开关按钮
self.cb = QCheckBox('Show drawrect', imgright)
self.cb.move(80, 350)
self.cb.toggle()
#cb.stateChanged.connect(self.chageTitle)
#文件夹打开
# self.textEdit=QTextEdit()
# self.setCentralWidget(self.textEdit)
# self.statusBar()
openFile=QAction(QIcon('C:\\Users\\Lenovo\\Pictures'),'Open',self)
openFile.setShortcut('Ctrl+E')
openFile.setStatusTip('Open new File')
openFile.triggered.connect(self.showfile)
#flmenubar=self.menuBar()
#flMenu=flmenubar.addMenu('&File')
fileMenu.addAction(openFile)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('O_Detetction')
# self.center()
self.setWindowIcon(QIcon('C:\\Users\\Lenovo\\Pictures\\log.png'))
self.show()
#界面关闭提醒
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message',
"Are you sure to quit?", QMessageBox.Yes |
QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
# 窗口居中
def center(self):
qr = self.frameGeometry()
cp = QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
self.move(qr.topLeft())
def onChanged(self, text):
self.lbl.setText(text)
self.lbl.adjustSize()
def toggleMenu(self,state):
if state:
self.statusBar.show()
else:
self.statusBar.hide()
def onActivated(self, text):
self.lbr.setText(text)
self.lbr.adjustSize()
#按下开始按钮,文本框显示输出
def showDialog(self):
text, ok = QInputDialog.getText(self, 'Input Dialog', 'Enter your name:')
if ok:
self.le.setText(str(text))
#进度条链接函数
def doAction(self):
if self.timer.isActive():
self.timer.stop()
self.begin.setText('Start')
else:
self.timer.start(100,self)
self.begin.setText('Stop')
#定时器处理函数
def timerEvent(self, e):
if self.step>=100:
self.timer.stop()
self.begin.setText('Finished')
return
self.step=self.step+1
self.pbar.setValue(self.step)
#字体控制函数
# def showword(self):
# font, ok = QFontDialog.getFont()
# if ok:
# self..setFont(font)
def showfile(self):
self.fname = QFileDialog.getOpenFileName(self, 'Open file', '/home')
# self.hh=QFileDialog.getExistingDirectory(self, 'Open file', '/home')
# self.fname=QFileDialog.getOpenFileName(self.hh,'Open file', '/home')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。