pyqt5 类继承图

img

#设置主窗口的位置【以下代码都可以单独放在一个py文件中运行调试,前提是装了PyQt5】
import sys #获取参数的api
from PyQt5.QtWidgets import QDesktopWidget,QMainWindow,QApplication
from PyQt5.QtGui import QIcon

class CenterForm(QMainWindow):
    def __init__(self):
        super(CenterForm,self).__init__()

        #设置主窗口标题
        self.setWindowTitle('让窗口居中')
        #设置尺寸
        self.resize(400,300)
        self.center()

    def center(self):
        #获取屏幕坐标系
        screen = QDesktopWidget().screenGeometry()
        #获取窗口坐标系
        size= self.geometry()
        x = int((screen.width()-size.width())/3)
        y =int((screen.height()-size.height())/2)
        self.move(x,y)

if __name__ == '__main__':
    app = QApplication(sys.argv) #app实例化
    app.setWindowIcon(QIcon('./images/Dragon.ico'))
    main = CenterForm() #实例化主窗口
    main.show() #主窗口显示
    sys.exit(app.exec_()) #循环,但是app和main又是什么关系?,app感觉应该是跟进程有关的
#添加按钮绑定事件
import sys #获取参数的api
from PyQt5.QtWidgets import QDesktopWidget,QMainWindow,QApplication,QPushButton,QHBoxLayout,QWidget
from PyQt5.QtGui import QIcon

class ButtonClickMainWindow(QMainWindow):
    def __init__(self):
        super(ButtonClickMainWindow,self).__init__()
        self.setWindowTitle('添加按钮绑定事件')
        self.resize(400,300)
        self.createWidgets()

    def createWidgets(self):
        #添加button
        self.button1 = QPushButton('Quit')
        #绑定信号与槽
        self.button1.clicked.connect(self.onClick1_Button)
        #设置布局
        layout = QHBoxLayout() #这里先设置了布局
        layout.addWidget(self.button1) #在布局里加了按钮 addWidget  widget是小部件的意思,这里是控件

        mainFrame =QWidget() #设置框架
        mainFrame.setLayout(layout)  #在框架里添加布局

        self.setCentralWidget(mainFrame) #这句网上的解释是  设置中心窗口部件 ,还不懂

    def onClick1_Button(self):
        sender = self.sender()
        print(sender.text()+'按钮被按下')
        app= QApplication.instance() #app还可以这样实例化
        app.quit()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = ButtonClickMainWindow()
    main.show()
    sys.exit(app.exec_())
#屏幕坐标系
import sys #获取参数的api
from PyQt5.QtWidgets import QDesktopWidget,QMainWindow,QApplication,QPushButton,QHBoxLayout,QWidget
#【这里不用类演示,直接面向过程】
#定义一个按钮方法
def onclick_button():
    print(1)
    print('widget.x() = %d'%widget.x()) #781 主窗口横坐标
    print('widget.y() = %d'%widget.y()) #195 主窗口纵坐标
    print('widget.width() = %d'%widget.width()) #300 #工作区的宽度,不包含边框1个像素的宽度
    print('widget.height() = %d'%widget.height()) #200 #主工作区的高度,不包括菜单栏

    print(1)
    print('widget.geometry().x() = %d' % widget.geometry().x()) #782 主工作区的横坐标
    print('widget.geometry().y() = %d' % widget.geometry().y()) #226 #主工作区的纵坐标
    print('widget.geometry().width() = %d' % widget.geometry().width()) #300  主工作区的宽度
    print('widget.geometry().height() = %d' % widget.geometry().height()) #200 主工作区的高度

    print(1)
    print('widget.frameGeometry().x() = %d' % widget.frameGeometry().x()) #781 #主窗口的横坐标
    print('widget.frameGeometry().y() = %d' % widget.frameGeometry().y()) #195 #主窗口的纵坐标
    print('widget.frameGeometry().width() = %d' % widget.frameGeometry().width()) # 302 #主窗口的宽度
    print('widget.frameGeometry().height() = %d' % widget.frameGeometry().height()) #232 #主窗口的高度,包括标题栏

#创建app
app = QApplication(sys.argv)
#创建主窗口
widget = QWidget()
#设置窗口标题,大小,位置
widget.setWindowTitle('屏幕坐标系')
widget.resize(300,200) #这里是设置工作区的高度是200,不包括标题栏
widget.move(100,200)
#创建子窗口(按钮)
button = QPushButton(widget)#子窗口(按钮等)要把主窗口作为参数传进来
button.setText('打印主窗口坐标') #这里不能用setWindowTitle,主窗口才能用,QPushButton等都是QWidget的子类
button.move(20,25)#这里是相对位置,相对于主窗口widget的
button.clicked.connect(onclick_button)
#启用循环
widget.show()
sys.exit(app.exec_())
#设置窗口图标
import sys
from PyQt5.QtWidgets import QWidget,QApplication,QMainWindow
from PyQt5.QtGui import QIcon
class IconMainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUi()

    def initUi(self):
        self.setGeometry(300,300,500,200)
        self.setWindowTitle('设置窗口图标')
        self.setWindowIcon(QIcon('favicon.ico'))
        #这里的setWindowIcon 好像QApplication对象也可以调用
if __name__ == '__main__':
    app = QApplication(sys.argv)
    icon = IconMainWindow()
    icon.show()
    sys.exit(app.exec_())
# 显示空间提示信息
import sys #获取参数的api
from PyQt5.QtWidgets import QDesktopWidget,QMainWindow,QApplication,QPushButton,QHBoxLayout,QWidget,QToolTip
from PyQt5.QtGui import QFont #需要字体

class ToolTipMainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        QToolTip.setFont(QFont('SansSerif',12))
        self.setToolTip('今天是<b>周日</b>') #工作区有效,菜单栏无效
        self.setGeometry(400,400,400,400)
        self.setWindowTitle('设置提示信息')

        #还可以在按钮上增加提示信息
        self.button1 = QPushButton('push me')
        self.button1.setToolTip('这是一个按钮')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    tm = ToolTipMainWindow()
    tm.show()
    sys.exit(app.exec_())
posted on 2020-08-23 22:39  94小渣渣  阅读(416)  评论(0编辑  收藏  举报