前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Python手把手教你玩QT

用Python手把手教你玩QT

原创
作者头像
手撕代码八百里
发布2023-11-30 22:59:56
5390
发布2023-11-30 22:59:56
举报
文章被收录于专栏:猿计划猿计划

为什么选择用Python QT

因为简单!

因为方便!

选择使用Python的Qt主要有以下几个原因:

  1. 易学易用: Python是一门简洁而高效的编程语言,具有清晰的语法结构,使得开发人员更容易理解和编写代码。Qt框架提供了Python的绑定(PyQt),使得在Python中使用Qt变得简单而直观。
  2. 跨平台性: Qt是一个跨平台的图形用户界面框架,支持在多个操作系统上运行,包括Windows、Linux和macOS。这使得用Python和Qt开发的应用程序可以在不同平台上无缝运行,而不需要重写大量的代码。
  3. 丰富的功能: Qt提供了丰富的组件和工具包,可以轻松构建各种类型的应用程序,包括桌面应用、移动应用和嵌入式应用。这使得Python开发人员能够使用Qt创建功能强大、具有良好用户体验的应用。
  4. 社区支持: Python和Qt都有强大的社区支持,开发者可以在社区中获取到丰富的教程、文档和解决方案。这有助于解决开发过程中的问题,并且可以从其他开发者的经验中学到更多。
  5. 广泛应用: Qt广泛应用于许多领域,包括科学计算、数据可视化、嵌入式系统等。通过使用Python和Qt,开发者可以利用两者的强大功能来解决各种问题,而无需切换到其他语言或框架。

如果你想开发一个Python的工具,那么使用Pyqt来做GUI界面在合适不过了.

搭建开发环境

我是ubuntu22的系统,如果你跟我一样,可以使用如下命令安装:

代码语言:shell
复制
sudo apt-get install libxcb-xinerama0
sudo apt-get install libqt5widgets5
pip install PyQt5

开发案例

Hello

按照惯例,先来个Hello:

代码语言:python
复制
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('手撕代码八百里')

label = QLabel('Hello, 手撕代码八百里!', window)
label.move(50, 50)

window.setGeometry(300, 300, 300, 200)
window.show()

sys.exit(app.exec_())

运行结果如下:

按钮事件

1.需要先导入QPushButton组件

代码语言:python
复制
from PyQt5.QtWidgets import QPushButton

2.然后创建button,绑定我们创建好的按钮事件

代码语言:python
复制
def btn_click():
    print("Hy Button is clicked!")


# 在当前窗口中创建一个btn按钮
button = QPushButton(window)
button.resize(200, 100)
# 按钮提示文字
button.setText("你点我呀!!!!")
button.move(100, 100)
# 绑定单击事件
button.clicked.connect(btn_click)

3.运行结果:

点击按钮:

可以看到点击后,就会看到打印的结果

使用PyQT开发一个记事本

代码语言:python
复制
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QAction, QFileDialog, QVBoxLayout, QWidget

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

        self.init_ui()

    def init_ui(self):
        # 创建文本编辑区域
        self.text_edit = QTextEdit(self)
        self.setCentralWidget(self.text_edit)

        # 创建菜单栏
        menubar = self.menuBar()
        file_menu = menubar.addMenu('File')

        # 添加打开、保存和退出动作
        open_action = QAction('Open', self)
        open_action.triggered.connect(self.open_file)
        file_menu.addAction(open_action)

        save_action = QAction('Save', self)
        save_action.triggered.connect(self.save_file)
        file_menu.addAction(save_action)

        exit_action = QAction('Exit', self)
        exit_action.triggered.connect(self.close)
        file_menu.addAction(exit_action)

        # 设置窗口属性
        self.setGeometry(100, 100, 800, 600)
        self.setWindowTitle('手撕代码八百里-专用记事本')

    def open_file(self):
        options = QFileDialog.Options()
        options |= QFileDialog.ReadOnly

        file_name, _ = QFileDialog.getOpenFileName(self, 'Open File', '', 'Text Files (*.txt);;All Files (*)', options=options)

        if file_name:
            with open(file_name, 'r') as file:
                content = file.read()
                self.text_edit.setPlainText(content)

    def save_file(self):
        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog

        file_name, _ = QFileDialog.getSaveFileName(self, 'Save File', '', 'Text Files (*.txt);;All Files (*)', options=options)

        if file_name:
            with open(file_name, 'w') as file:
                file.write(self.text_edit.toPlainText())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    notepad = NotepadApp()
    notepad.show()
    sys.exit(app.exec_())

运行结果:

可以保存:

可以打开文件:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么选择用Python QT
  • 搭建开发环境
  • 开发案例
    • Hello
      • 按钮事件
      • 使用PyQT开发一个记事本
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档