Python _PyQt5对话框

Stella981
• 阅读 603

Python 调用PyQt5 制作对话框,退出时候有二次确认(注:默认是直接退出)

Python _PyQt5对话框

Python _PyQt5对话框 Python _PyQt5对话框

 1 # -*- ytf-8 -*-
 2 """
 3 用PyQt建一个对话框,退出时提示有二次确认
 4 """
 5 
 6 import sys
 7 from PyQt5.QtWidgets import QApplication,QMessageBox,QWidget
 8 
 9 class myWin(QWidget):
10     def __init__(self):
11         #执行父类的__init__构造方法
12         super().__init__()
13         #将窗口的设置委托给initUI方法
14         self.initUI()
15     def initUI(self):
16         #设置窗口
17         self.setWindowTitle("消息框")
18         self.setGeometry(200,200,500,500)   #先位置再大小
19         self.show()
20     #重写关闭事件方法(closeEvent)
21     def closeEvent(self,event):
22         #获取消息框实例的值
23         msg = QMessageBox.question(self,"退出警告","你确定退出吗?",QMessageBox.Yes|QMessageBox.No,QMessageBox.No)  #这里是固定格式,yes/no不能动
24         #判断消息的返回值
25         if msg ==QMessageBox.Yes:
26             event.accept()
27         else:
28             event.ignore()
29 if __name__=="__main__":
30     app=QApplication(sys.argv)
31     my=myWin()
32     sys.exit(app.exec_())

PyQt5_对话框_退出时确认

Python_menuBar

 Python _PyQt5对话框

Python _PyQt5对话框 Python _PyQt5对话框

 1 import sys
 2 from PyQt5.QtWidgets import QApplication,QMainWindow,QAction,QMessageBox
 3 from PyQt5.QtGui import QIcon
 4 
 5 class myWin(QMainWindow):
 6     def __init__(self):
 7         super().__init__()
 8         self.initUI()
 9 
10     def initUI(self):
11         #创建动作对象并设置
12         action_close=QAction(QIcon('icon.png'),'&退出',self)
13         action_close.setShortcut('A')
14         action_close.setStatusTip('这是退出功能')
15         action_close.triggered.connect(self.close)
16 
17         action_open=QAction(QIcon('icon.png'),'&打开',self)
18         action_open.setShortcut('Ctrl+O')
19         action_open.setStatusTip('这是打开功能')
20         action_open.triggered.connect(self.open1)
21 
22         #创建菜单
23         menuBar=self.menuBar()
24         menufile=menuBar.addMenu('&文件')
25         menufile.addAction(action_open)
26         menufile.addAction(action_close)
27 
28         #设置状态栏
29         self.statusBar().showMessage('这个是状态栏....')
30 
31         #设置窗口属性
32         self.setGeometry(100,300,400,400)
33         self.setWindowTitle('菜单栏实例')
34         self.setWindowIcon(QIcon('icon.png'))
35 
36         self.show()
37     #重写关闭事件方法(closeEvent)
38     def closeEvent(self,event):
39         #获取消息框实例的值
40         msg=QMessageBox.question(self,'退出警告','你确认退出吗??',QMessageBox.Yes | QMessageBox.No,QMessageBox.No)  
41         #判定消息框的返回值
42         if msg==QMessageBox.Yes:
43             event.accept()
44         else:
45             event.ignore()
46     def open1(self):
47         print('马季是个相声家')
48 
49 if __name__=='__main__':
50     app=QApplication(sys.argv)
51     my=myWin()
52     sys.exit(app.exec_())

Python_menuBar

Python _PyQt5对话框

Python _PyQt5对话框 Python _PyQt5对话框

 1 # -*- coding:utf-8 -*-
 2 
 3 """
 4 图形界面
 5 拖动  只在图形界面
 6 
 7 
 8 对于接收拖动组件:
 9 1、开启 setAcceptDrops  允许接收拖动
10 2、重写 dragEnterEvent  对拖入数据进行过滤  
11 3、重写 dropEvent  放入拖拽状态
12 
13 对于拖出组件
14 设置setDragEnabled 为 True 允许拖动操作
15 
16 
17 目标:将单行文本框里的文字拖到按钮中,在按钮中显示
18 """
19 
20 from PyQt5.QtWidgets import QApplication,QWidget,QLineEdit,QPushButton
21 import sys
22 
23 #创建一个可以拖入的按键类型
24 class btn_drag(QPushButton):
25     #注意构造方法与按钮之间的参数的需求关系
26     def __init__(self,title,parent):    #形参
27         super().__init__(title,parent)
28         self.setAcceptDrops(True)   #允许拖入
29 
30     def dragEnterEvent(self,e):     #重写 拖拽进入方法
31         if e.mimeData().hasFormat("text/plain"):   #过滤信息,只能是文本下的纯文本格式
32             e.accept()
33         else:
34             e.ignore()
35 
36     def dropEvent(self,e):      #重写放入事件
37         self.setText(e.mimeData().text())   #将拖入的文本信息放入到当前实例的text中
38         
39 #新建基本框,有单行文本框和按钮
40 class myWin(QWidget):
41     def __init__(self):
42         super().__init__()
43         self.initUI()
44 
45     def initUI(self):
46         btn=btn_drag("ok",self) #实例化框中按钮
47         edit=QLineEdit('000',self)
48         edit.setDragEnabled(True)   #设置允许拖拽
49         btn.setGeometry(10,10,100,40)
50         edit.setGeometry(10,70,80,20)
51         
52         self.setGeometry(150,150,500,300)
53         edit.setWindowTitle("拖拽实例1")
54         self.show()
55 
56 if __name__ == "__main__":
57     app = QApplication(sys.argv)
58     my = myWin()
59     sys.exit(app.exec_())

PyQt5 拖动单行文本框的文字到一个按钮里

Python _PyQt5对话框

Python _PyQt5对话框 Python _PyQt5对话框

 1 """
 2 选择框
 3 """
 4 
 5 import sys
 6 from PyQt5.QtWidgets import QApplication,QWidget,QComboBox  #combox选择框
 7 
 8 class myWin(QWidget):
 9     def __init__(self):
10         super().__init__()
11         self.initUI()
12     def initUI(self):
13         self.com=QComboBox(self) #实例化选择框
14         self.com.setGeometry(40,40,100,20)
15         self.com.addItem("东")
16         self.com.addItem("南")
17         self.com.addItem("西")
18         self.com.addItem("北")
19 
20         self.setGeometry(100,100,300,300)
21         self.setWindowTitle("选择框")
22         self.show()
23     def shows(self,date):
24         print(date)
25         self.lb1.setText(str(date))
26 
27 if __name__=="__main__":
28     app = QApplication(sys.argv)
29     my = myWin()
30     sys.exit(app.exec_())
31

选择框

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这