design.py

本文详细介绍了使用PySide2进行图形界面设计的方法,包括如何创建和布局窗口、按钮与列表组件,以及如何实现信号与槽的连接来响应用户操作。通过具体代码示例,展示了如何自定义窗口属性,如大小、位置和标题,以及如何添加和配置按钮与列表组件。
# -*- coding: utf-8 -*-

from PySide2 import QMetaObject, QCoreApplication
from PySide2 import QWidget, QVBoxLayout, QListWidget, QPushButton
from PySide2 import QtGui, QtWidgets, QtCore


# 在Qt Designer中自动生成的代码,但需要部分修改
#design.py 主要负责写软件界面的文件。

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")  # 设置窗口名
        MainWindow.setWindowTitle("用这小程序~你很帅") # 设置窗口名
        MainWindow.resize(400, 400) # 设置窗口大小
        self.move(400, 400)  # 设置窗口位置

        # file_menu = Ui_MainWindow(self)  # 实例化一个菜单栏
        # file_menu.setFixedWidth(200)  # 设置菜单栏的宽度
        # file_menu.addMenu("文件")  # 添加一个菜单按钮
        # file_menu.addMenu("编辑")  # 添加一个菜单按钮
        # file_menu.addMenu("关于")  # 添加一个菜单按钮

        # show()方法在屏幕上显示一个widget,widget对象在这里第一次被在内存中创建,并且之后在屏幕上显示。
        #self.show()

        # 唤醒窗口
        MainWindow.raise_()
        # 必须要手动创建一个总部件,并把子部件加载于此,否则会出现以下报错:
        # QLayout: Attempting to add QLayout "" to WoHeYunApp "MainWindow", which already has a layout
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.centralwidget.resize(400, 300)

        self.verticalLayout = QVBoxLayout()
        # self.verticalLayout.setObjectName("verticalLayout")

        # 窗口自适应部件
        MainWindow.setCentralWidget(self.centralwidget)
        self.verticalLayout_2 = QVBoxLayout(self.centralwidget)
        self.verticalLayout_2.setObjectName("verticalLayout_2")


        # self.listWidget.setObjectName("listWidget")    ##列表选项类名字
        # self.verticalLayout.addWidget(self.listWidget)  ##自动适应大小
        #
        #
        # self.verticalLayout_2.addLayout(self.verticalLayout)
        #
        # self.retranslateUi(self.centralwidget)
        # QMetaObject.connectSlotsByName(self.centralwidget)

        # self.setToolTip('This is a <b>QWidget</b> widget')

        self.pushButton = QPushButton(self.centralwidget)

        # self.btn_dialog = QPushButton(self.centralwidget)
        # btn = self.btn_dialog
        # btn.move(0, 00)
        # btn.resize(500, 500)

        # self.btn.clicked.connect(self.openMessageBox)
        # self.btn_dialog.clicked.connect(self.openMessageBox)

        # self.connect(self.btn_dialog, QtCore.SIGNAL('clicked()'), self, QtCore.SLOT('openMessageBox()'))

        # self.gridLayout.addWidget(self.pushButton, 0, 1, 1, 1)
        B1 = self.pushButton
        B1.repaint(0,0,200,200)
        B1.move(50, 50)
        B1.resize(300, 50)
        # repaint(self, x: int, y: int, w: int, h: int)

        self.pushButton2 = QPushButton(self.centralwidget)
        # self.pushButton2.resize(200, 100)
        B2 = self.pushButton2
        B2.repaint(0, 0, 200, 200)
        B2.move(50,100)
        B2.resize(300, 50)

        self.listWidget = QListWidget(self.centralwidget)  #列表项类  centralwidget居中

        L1 = self.listWidget
        L1.move(50,200)
        L1.resize(300, 100)
        # self.pushButton.setObjectName("pushButton")
        # self.verticalLayout.addWidget(self.pushButton)
        # self.verticalLayout.addWidget(self.pushButton2)
        #
        self.pushButton.setText("SQL文件名字及脚本 MYSQL 更换成GRAY")
        self.pushButton2.setText("kjb 文件 MYSQL更换成GRAY")


        # self.pushButton.setObjectName("按钮1")
        # self.pushButton.setObjectName("按钮2")

        # self.pushButton2 = QPushButton(self.centralwidget)
        # self.pushButton2 = QPushButton("按钮1")
        # self.pushButton2.resize(1400, 800)

        # self.verticalLayout.addWidget(self.pushButton2)

        # self.pushButton2 =QPushButton(self.centralwidget)
        # self.pushButton2.setObjectName("按钮1")
        # self.pushButton3 = QPushButton(self.centralwidget)
        # self.pushButton3.setObjectName("按钮2")
        # self.pushButton4 = QPushButton(self.centralwidget)
        # self.pushButton4.setObjectName("按钮3")


    def openMessageBox(self,STRING):
        msgBox = QtWidgets.QMessageBox()
        msgBox.addButton(QtWidgets.QMessageBox.Ok)
        msgBox.addButton(QtWidgets.QMessageBox.Cancel)
        # QtWidgets.QMessageBox.Ok | QtWidgets.QMessageBox.Cancel
        msgBox.setText(STRING)
        ret = msgBox.exec_()
        if ret == QtWidgets.QMessageBox.Ok: # 保存按钮被点击
         return 1
        elif ret == QtWidgets.QMessageBox.Cancel:   # 不保存按钮被点击
         return 2
        else :        # 取消按钮被点击
          return 3



    def retranslateUi(self, MainWindow):
        _translate = QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

        # self.pushButton.setText(_translate("MainWindow", "Pick a folder"))




class MyWidget(QtWidgets.QWidget):
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)

        self.setFixedSize(200, 120)

        self.btn_dialog = QtWidgets.QPushButton(u'弹出对话框')

        self.connect(self.btn_dialog, QtCore.SIGNAL('clicked()'), self, QtCore.SLOT('openMessageBox()'))

        self.layout = QtWidgets.QVBoxLayout()
        self.layout.addWidget(self.btn_dialog)
        self.setLayout(self.layout)



    # app = QtWidgets.QApplication()
    # widget = MyWidget()
    # widget.show()
    # sys.exit(app.exec_())

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值