【PyQT5】PyQT5通用功能设置

原文作者:我辈李想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。



前言


一、登录界面窗体去边框

要去掉 PyQt5 窗体的边框,可以使用 setWindowFlag 方法来实现。示例代码如下:

from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import Qt


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # 设置窗体属性
        self.setWindowFlags(Qt.FramelessWindowHint)

        # 设置窗体背景透明
        self.setAttribute(Qt.WA_TranslucentBackground)

        # 设置窗体大小和位置
        self.setGeometry(100, 100, 500, 400)


if __name__ == '__main__':
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec_()

在上面的代码中,我们使用 setWindowFlags 方法设置了窗体标志,这里的 Qt.FramelessWindowHint 表示去掉窗体边框。然后使用 setAttribute 方法设置了窗体背景透明。最后使用 setGeometry 方法设置了窗体的大小和位置。这样就可以实现一个没有边框的 PyQt5 窗体了。

二、窗口最大化

您可以使用代码实现Qt Designer创建的UI窗口最大化功能。您需要做以下几件事:

  1. 添加一个按键或菜单项来触发最大化操作。
  2. 在槽函数中使用showMaximized()函数来最大化窗口。

下面是示例代码:

from PyQt5.QtWidgets import QMainWindow, QApplication, QAction

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 创建一个菜单栏项和按键来触发最大化操作
        menu_bar = self.menuBar()
        view_menu = menu_bar.addMenu('View')
        max_action = QAction('Maximize', self)
        max_action.triggered.connect(self.maximizeWindow)
        view_menu.addAction(max_action)

        # 设置窗口初始大小和位置
        self.setGeometry(100, 100, 400, 300)
        self.setWindowTitle('Maximize Window Example')

        self.show()

    def maximizeWindow(self):
        # 最大化窗口
        self.showMaximized()

if __name__ == '__main__':
    app = QApplication([])
    window = MyWindow()
    app.exec_()

在这个示例中,我们创建了一个菜单栏项和按键来触发最大化操作。当用户点击“Maximize”菜单项或按键时,会调用maximizeWindow()槽函数,从而最大化窗口。

三、显示图片

如果在Qt Designer中选择的图片文件在预览时正常显示,但是在运行时不显示,请检查以下几个可能导致问题的原因:

  1. 图片文件的路径不正确。请确保在Qt Designer中选择的图片文件路径正确,并且文件名拼写没有错误。如果您使用的是相对路径,请确保该文件在正确的位置。另外,在运行时,需要使用相对于可执行文件的路径。

  2. 图片文件的格式不正确。请确保您的图片文件是Qt支持的格式,比如bmp、gif、jpg、png等。

  3. 代码中没有正确设置图片。如果您使用的是代码方式将图片添加到Qt项目中,请确保您在代码中正确设置了图片,例如使用QPixmap将图片加载到QLabel或QWidget中,并通过setPixmap()方法设置为窗口的背景。

  4. 图片太大。如果您的图片文件过大,可能会导致在运行时无法正常显示。请尽可能缩小图片文件的大小。

如果以上方法都无法解决问题,请尝试重新添加一张图片文件,或者使用另一种图片格式。

在Qt Designer中,可以通过如下步骤来设置背景图片:

  1. 在窗口中添加一个 QLabel 控件,并将其大小调整为窗口大小。如果您的窗口中已经存在一个 QLabel 控件,您可以直接使用它。

  2. 将要作为背景的图片复制到项目中,并将其添加到资源文件中。右键点击项目,选择 Add New... -> Qt -> Qt Resource File,并将图片文件拖动到资源文件中。

  3. 打开 QLabel 控件的属性编辑器。在 Pixmap 属性处单击下拉箭头,然后选择 Choose File,在弹出的对话框中选择要用作背景的图片。

  4. Scaled Contents 属性处选择 True,表示将自动缩放并平铺图片以适应控件大小。

  5. Alignment 属性处选择 AlignCenter,表示将以控件中央的点为基准对齐图片。

  6. Minimum Size 属性处将 widthheight 设置为 0,表示不限制控件的大小。

  7. 点击 Apply 按钮,然后点击 OK 按钮,保存更改并关闭属性编辑器。

这样,就可以在 Qt Designer 中将一张图片作为窗口的背景了。

四、按钮默认点击

要在 Qt Designer 中设置默认按钮,可以按照以下步骤进行操作:

  1. 将您的默认按钮放置在适当的位置。

  2. 选中您的默认按钮。

  3. 在属性编辑器中,找到“default”属性,并将其设置为“True”。

  4. 如果您希望在使用“Enter”键时该按钮被触发,请确保此按钮为所在窗体的默认按钮。要设置窗体的默认按钮:

  • 选中您的窗口。

  • 在属性编辑器中,找到“defaultButton”属性,将其设置为您的默认按钮。

  1. 保存您的 UI 文件并退出 Qt Designer。

这里是一个示例代码,演示如何在 Python 中将窗体的默认按钮设置为“OK”按钮:

from PyQt5.QtWidgets import QApplication, QDialog, QPushButton

class MyDialog(QDialog):
    def __init__(self):
        super().__init__()

        # 创建默认按钮
        self.ok_button = QPushButton("OK", self)
        self.ok_button.setDefault(True)

        # 将按钮添加到对话框
        layout = self.layout()
        layout.addWidget(self.ok_button)

        # 设置默认按钮
        self.setDefaultButton(self.ok_button)

    def setDefaultButton(self, button):
        # 将按钮设置为对话框的默认按钮
        self.enterButton = button
        self.enterButton.setAutoDefault(True)
        self.enterButton.setDefault(True)


if __name__ == "__main__":
    app = QApplication([])
    dialog = MyDialog()
    dialog.show()
    app.exec_()

在这个示例中,我们使用 QPushButton 类创建默认按钮,并使用 setDefault 方法将其设置为默认按钮。然后,我们使用自定义的 setDefaultButton 方法将按钮设置为对话框的默认按钮。

五、背景颜色

如果您需要在Qt Designer中设置控件的背景颜色,可以按照以下步骤操作:

  1. 打开Qt Designer并加载您的UI文件。

  2. 在右侧的“属性编辑器”窗口中,找到您想要更改背景颜色的控件。

  3. 展开“样式表”属性,并单击“编辑”。

  4. 在弹出的“编辑样式表”对话框中,输入以下代码来设置控件的背景颜色:

background-color: 颜色代码;

请将“颜色代码”替换为您想要的颜色代码,例如红色可以使用“#ff0000”。

  1. 单击“确定”保存更改。

  2. 保存您的UI文件并关闭Qt Designer。

现在,您的控件的背景颜色应该已经更改为您指定的颜色。

qt designer 背景渐变

qt designer 字体白色

如果您需要在Qt Designer中设置字体的颜色为白色,您可以按照以下步骤操作:

  1. 打开Qt Designer并加载您的UI文件。

  2. 在右侧的“属性编辑器”窗口中,找到您想要更改字体颜色的控件。

  3. 展开“字体”属性,并单击“颜色”下拉框。

  4. 在弹出的颜色选择器中,选择白色。

  5. 单击“确定”保存更改。

  6. 保存您的UI文件并关闭Qt Designer。

现在,您的控件的字体颜色应该已经更改为白色。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PyQt5的QMessageBox是一种通用的弹出框,用于显示消息、警告、错误、提问等等。它可以在图形用户界面中与用户进行交互,并根据用户的选择执行相应的操作。 在PyQt5中使用QMessageBox可以显示不同类型的消息框,并且可以自定义按钮的文本。例如,使用QMessageBox的information方法可以显示一个信息框,question方法可以显示一个问答框,warning方法可以显示一个警告框,critical方法可以显示一个危险框,about方法可以显示一个关于框。 为了让这些按钮显示我们喜欢的中文,可以通过以下两种方式实现: 方式一:使用setButtonText方法设置按钮的文本。例如,使用QMessageBox的setButtonText方法可以设置Yes按钮的文本为"确定",No按钮的文本为"取消"。 方式二:在创建QMessageBox对象时,可以指定按钮的文本。例如,使用QMessageBox的question方法创建一个问答框时,可以将按钮的文本设置为中文。 下面是一个使用PyQt5的QMessageBox的示例代码: ```python from PyQt5.QtWidgets import QMessageBox, QWidget, QApplication app = QApplication([]) # 创建一个QWidget作为父类窗口 w = QWidget() # 显示一个退出确定框 reply = QMessageBox.question(w, '退出', '确定退出?', QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel, QMessageBox.Cancel) if reply == QMessageBox.Yes: print('退出') app.quit() else: print('不退出') app.exec_() ``` 以上代码创建了一个QWidget对象作为父类窗口,然后使用QMessageBox的question方法显示一个问答框,用户可以选择是、否或取消。根据用户的选择,程序会打印相应的输出并退出或继续运行。 希望以上解答能帮到你。如果还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python——pyqt5——消息框(QMessageBox)](https://blog.csdn.net/weixin_30254435/article/details/95785993)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Pyqt5如何让QMessageBox按钮显示中文示例代码](https://download.csdn.net/download/weixin_38546817/14869947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [python界面交互PyQt5–消息框(QMessageBox)](https://blog.csdn.net/qq_41551450/article/details/104947551)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我辈李想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值