pyqt 万能简易模板(一)

4 篇文章 3 订阅

本文将介绍一些pyqt5基本使用技巧,不借助Qtdesigner,而是全部用代码编写,将实现页面布局、窗口自适应、字体自适应等功能。一般的简易工程均可使用,简单高效。

对于pyqt5的一些基本技巧,本文内容基本够用,可以快速实现自己想要的界面。

1、设置窗口名称

self.setWindowTitle("窗口名称")

2、获取显示器分辨率大小

#获取显示器分辨率大小
self.screenRect = self.desktop.screenGeometry()
self.height = self.screenRect.height()
self.width = self.screenRect.width()

3、窗口尺寸自适应桌面分辨率

#获取显示器分辨率大小
self.screenRect = self.desktop.screenGeometry()
self.height = self.screenRect.height()
self.width = self.screenRect.width()
#获取不同分辨率下需要缩放的比例,2560为参考尺寸
self.scale_ratio = self.width / 2560
#根据显示器分辨率自动设置窗口大小
self.setGeometry(50, 50, 50 + int(900 * self.scale_ratio), 50 + int(400 * self.scale_ratio))

4、获取控件尺寸大小

(1)获取控件尺寸大小:直接使用.width()和.height()获取宽度和高度,如label1.width()。

(2)获取主窗口:event.size().width()、event.size().height(),需加入event处理。

def resizeEvent(self, event):
    w  = event.size().width()
    h = event.size().height()

5、设置控件位置与大小

(1)resize:使用.resize(width, height),设置控件大小。

(2)setFixedSize:使用.setFixedSize(width, height),设置控件大小。

(3)move:使用.move(left, top)放置控件,以左上方顶点为参考。

(4)setGeometry:窗口放置位置,.setGeometry(left, top, right, bottom),可以用来初始化主窗口。

以上位置和大小的布局方式为绝对布局,不利于自适应窗口大小布局。自适应窗口需要用layout布局,会在Layout自适应窗口布局部分详细介绍。

6、设置控件样式

config = "QLabel{qproperty-alignment: AlignCenter;color:#FF0000;font-size:15px;font-weight:bold;font-family:宋体;}"

self.label1.setStyleSheet(config)

可以设置字体样式、对齐方式、背景颜色等。Label设置时需在config中用QLabel,如果是QPushButton,则需把config中的QLabel替换成QPushButton。

也可以如下分成多条语句。

self.btn1.setStyleSheet("QPushButton{background:(#F000F0)}"
                        "QPushButton{qproperty-alignment: AlignCenter;color:#FF00FF;font-size:25px;font-weight:bold;font-family:宋体;}"
                                 )

7、控件启用与禁用

(1)禁用:.setEnabled(False)

(2)启用:.setEnabled(True)

8、刷新窗口QApplication.processEvents()

当窗口控件显示内容没有及时更新时,可调用该函数刷新窗口和控件状态。

完整代码:pyqt 万能简易模板(四)

  • 0
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用PyQt5可以很方便地实现简易计算器的功能。以下是实现简易计算器的步骤: 1. 导入PyQt5模块和sys模块。 2. 创建一个QApplication对象。 3. 创建一个QWidget对象作为主窗口。 4. 创建一个QLineEdit对象用于显示计算结果。 5. 创建多个QPushButton对象作为数字和运算符按钮,并将它们添加到主窗口中。 6. 为每个按钮连接一个槽函数,用于处理按钮点击事件。 7. 在槽函数中,根据按钮的文本内容进行相应的计算,并将结果显示在QLineEdit对象中。 下面是一个简单的示例代码: ``` import sys from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QPushButton, QVBoxLayout class Calculator(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.result = QLineEdit() self.result.setReadOnly(True) vbox = QVBoxLayout() vbox.addWidget(self.result) grid = QGridLayout() self.buttons = {} button_texts = ['7', '8', '9', '+', '4', '5', '6', '-', '1', '2', '3', '*', '0', '.', '=', '/'] positions = [(i, j) for i in range(4) for j in range(4)] for position, text in zip(positions, button_texts): button = QPushButton(text) self.buttons[text] = button grid.addWidget(button, *position) vbox.addLayout(grid) self.setLayout(vbox) for text, button in self.buttons.items(): if text.isdigit() or text == '.': button.clicked.connect(self.handle_digit) elif text in ['+', '-', '*', '/']: button.clicked.connect(self.handle_operator) elif text == '=': button.clicked.connect(self.handle_equal) self.setWindowTitle('Calculator') self.show() def handle_digit(self): button = self.sender() digit = button.text() self.result.setText(self.result.text() + digit) def handle_operator(self): button = self.sender() operator = button.text() self.result.setText(self.result.text() + ' ' + operator + ' ') def handle_equal(self): expression = self.result.text() try: result = eval(expression) self.result.setText(str(result)) except: self.result.setText('Error') if __name__ == '__main__': app = QApplication(sys.argv) calc = Calculator() sys.exit(app.exec_()) ``` 相关问题: 1. 如何在PyQt5中创建主窗口? 2. 如何在PyQt5中创建按钮并连接槽函数? 3. 如何在PyQt5中显示文本框?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Coding的叶子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值