添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
坚强的梨子  ·  表格 | BuildAdmin·  5 月前    · 
爱搭讪的烈马  ·  使用 Sheetjs 将 JSON ...·  1 年前    · 
魁梧的啄木鸟  ·  target_include_directo ...·  1 年前    · 
深沉的鸡蛋面  ·  keytool : ...·  1 年前    · 

首页 > Python资料 博客日记

python--pyQt5 pyside6 中 下拉列表框(QComboBox)

2024-05-15 20:00:04 Python资料 围观 72

Python资料网推荐python--pyQt5 pyside6 中 下拉列表框(QComboBox)这篇文章给大家,欢迎收藏Python资料网享受知识的乐趣

参考: https://zhuanlan.zhihu.com/p/138386185
https://developer.aliyun.com/article/1314474

一、组合框控件ComboBox

ComboBox的功能是从一个列表中一次只能选取或输入一个选项,其主要特点是具有带向下箭头的方框。在程序执行时,按下此按钮就会下拉出一个列表框供用户选择项目

属性 说明
Items 表示该组合框中所包含项的集合
SelectedItem 获取或设置当前组合框中选定项的索引
SelectedText 获取或设置当前组合框中选定项的文本
Sorted 指示是否对组合框中的项进行排序
addItem 添加一个下拉选项
addItems 添加多个下拉选项
currentIndex 返回当前的下拉选项索引
currentText 返回当前下拉选项文本
count 返回下拉列表框中全部选项的个数
removeItem 删除选项
clear 清空所有选项
insertItem 将选项添加到指定的index位置
setCurrentIndex 显示指定index位置的选项

【提示】在 qt designer 中 可以添加下拉框选择内容

  self.ui.comboBox.addItem("苹果") # 添加单个选项
  self.ui.comboBox.addItems(["葡萄","香蕉","西瓜"]) # 添加多个选项
 self.Settings_UI.comboBox.textActivated.connect(self.check_result)  # 下拉框
 def check_result(self):
     data = self.Settings_UI.comboBox.currentText()
     self.Settings_UI.lineEdit_2.setText(data)  # 将选择的结果生成在LineEdit里

self.comboBox.activated.connect(self.getText()) # 当用户在组合下拉框中选中一个条目时发射此信号,索引作为参数传递

self.comboBox.currentIndexChanged.connect(self.box_result) # 索引变化时触发 绑定槽函数

self.comboBox.currentTextChanged.connect(self.box_result) # 文本变化时触发

self.comboBox.highlighted.connect(self.box_result) # 当用户高亮(光标移入或键盘选择)了弹出菜单中的某一条目时发射此信号

self.comboBox.textActivated.connect(self.box_result) # 当用户选择了条目之一时,发射此信号并将文本作为参数传递

self.comboBox.textHighlighted.connect(self.box_result) # 当用户高亮了弹出菜单中的某一条目时发射此信号

二、按钮+列表 文本显示

self.Settings_UI.pushButton_7.clicked.connect(self.getItem)  
def getItem(self):
    items = ('OTU0', 'OTU1', 'OTU2')
    # 返回两个值,第一个item代表用户选择的值,ok代表用户是否按下了取消
    item, ok = QInputDialog.getItem(self, '请选择', '', items)
    if ok and item:
        self.Settings_UI.lineEdit.setText(item)

QInputDialog.getItem:选择选项的下拉列表
QInputDialog.getText:获取输入的文本内容
QInputDialog.getInt:获取输入数字的计时器

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class QInputDialogDemo(QWidget):
    def __init__(self):
        super(QInputDialogDemo, self).__init__()
        self.initUI()
    def initUI(self):
        self.setWindowTitle("输入对话框")
        layout = QFormLayout()
        self.button1 = QPushButton("获取列表中的选项")
        self.button1.clicked.connect(self.getItem)
        self.lineEdit1 = QLineEdit()
        layout.addRow(self.button1, self.lineEdit1)
        self.button2 = QPushButton("获取字符串")
        self.button2.clicked.connect(self.getText)
        self.lineEdit2 = QLineEdit()
        layout.addRow(self.button2, self.lineEdit2)
        self.button3 = QPushButton("获取整数")
        self.button3.clicked.connect(self.getInt)
        self.lineEdit3 = QLineEdit()
        layout.addRow(self.button3, self.lineEdit3)
        self.setLayout(layout)
    def getItem(self):
        items = ('C', 'C++', 'Ruby', 'Python', 'Java')
        # 返回两个值,第一个item代表用户选择的值,ok代表用户是否按下了取消
        item, ok = QInputDialog.getItem(self, "请选择编程语言", "语言列表", items)
        if ok and item:
            self.lineEdit1.setText(item)
    def getText(self):
        text, ok = QInputDialog.getText(self, "文本输入框", "输入姓名")
        if ok and text:
            self.lineEdit2.setText(text)
    def getInt(self):
        num, ok  = QInputDialog.getInt(self, "整数输入框", "输入数字")
        if ok and num:
            self.lineEdit3.setText(str(num))
if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = QInputDialogDemo()
    main.show()
    sys.exit(app.exec_())
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QLineEdit
class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setWindowTitle("My App")
        widget = QLineEdit()
        '''设置输入内容最大长度'''
        widget.setMaxLength(10)
        '''设置文本框提示'''
        widget.setPlaceholderText("Enter your text")
        '''设置为只读模式'''
        # widget.setReadOnly(True)
        widget.returnPressed.connect(self.return_pressed)
        widget.selectionChanged.connect(self.selection_changed)  # 只要改变了,这个信号就会被触发
        widget.textChanged.connect(self.text_changed)  # 当修改文本内容时,这个信号就会被触发
        widget.textEdited.connect(self.text_edited)  # 当编辑文本结束时,这个信号就会被触发
        self.setCentralWidget(widget)
    def return_pressed(self):
        print("按了Enter键!")
        self.centralWidget().setText("BOOM!")
    def selection_changed(self):
        print("选中了文本!")
        print(self.centralWidget().selectedText())
    def text_changed(self, s):
        print("文本改变了!")
        print(s)
    def text_edited(self, s):
        print("文本被编辑了!")
        print(s)
if __name__ == '__main__':
    app = QApplication(sys.argv)  # 初始化
    win = MainWindow()  # 初始化界面并展示
    win.show()
    app.exec()

版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:[email protected]进行投诉反馈,一经查实,立即删除!

上一篇: 【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
下一篇: 【Python】全面掌握 Collections Deque:队列与栈的高效实现及动态内存管理指南

  • idea编写运行python
  • AI机器学习实战 | 使用 Python 和 scikit-learn 库进行情感分析
  • python setup.py egg_info did not run successfully.
  • JavaDS预备知识
  • 世界商用飞机机型大全-使用Java抓取FlightAware后的答案
  • 【Python】从基础到进阶(一):了解Python语言基础以及变量的相关知识
  • 教你用 Python 自制简单版《我的世界》
  • 版本匹配指南:Numpy版本和Python版本的对应关系
  • 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
  • 在Java中使用XxlCrawler时防止被反爬的几种方式
  • Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
  • 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
  • PyPy JIT编译器背后的奥秘(揭开PyPy高性能Python的编译优化技术)
  • Python分析程序性能指南 - 3种内存和CPU诊断方法助你优化代码(掌握Python内存和CPU分析技巧)
  • Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj
  •