转自:http://blog.csdn.net/seeground/article/details/49177387?locationNum=3&fps=1

listWidget = QListWidget() #实例化一个(item base)的列表

listWidget.addItem('dd') #添加一个项

listWidget.addItems([]) # 从序列中添加子项

listWidget.setDragEnabled(True) #设置拖拉

listWidget.sortItems() #排序

listWidget.selectAll()全选

listWidget.setSortingEnabled(bool) #设置自动排序

listWidget.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) #设置选择模式

选择模式有:ExtendedSelection 按住ctrl多选, SingleSelection 单选 MultiSelection 点击多选 ContiguousSelection 鼠标拖拉多选

listWidget.setCurrentRow(0) 设置当前选择行 默认为-1

listWidget.count() #得到子项总数

listWidget.item(row).text() #得到第 row 行的内容 listWidget.item(row) 返回一个item 对象

listWidget.takeItem(row) #返回row 行的 所在的item 对象 可以用在 insertItem()中

listWidget.insertItem(2,item) #在第二行插入一项 item 可谓为一个listviewitem对象 或者string

listWidget.setCurrentItem('dd') #设置'dd'为当前项

listWidget.selectedItems() 返回一个 包含item对象 的list 对象

修改item 的内容

item.setText('dsds') # 设置item的内容为dsds item为对象 可从 listWidget.item(row) takeItem(row) 得到

PyQt4 QAction()使用教程

exit=QtGui.QAction(QtGui.QIcon('pix/Moon.bmp'),'Exit',self) #创建一个action "exti"为title self 为parent

exit.setSeparator(bool)#设置设置该action为分离器 也就是分隔符? 当为true时 QIcon会无效

exit.setShortcut('Ctrl+Q') #设置快捷键

也可以 exit.setShortcut(QKeySequence.New) # QKeySequence 保护标准的快捷按钮 QKeySequence.Paste

exit.setStatusTip('Exit Application') #设置状态栏说明

exit.setToolTip("exit") #设置tip

exit.setText("sdf") #设置title

exit.setWhatsThis("string") #设置what's this

当checked状态发生改变时 发出toggled(bool) 信号

当点击 触发状态发生变化时 发出triggered(bool)信号

self.connect(exit,QtCore.SIGNAL('triggered()'),QtCore.SLOT('close()')) #设置信号 插槽

创建的action 可以使用在 menubar toolbar

fileMenu = QMenuBar().addMenu(tr("&Exit"));

fileMenu.addAction(exit);

fileToolBar = addToolBar(tr("Exit"));

fileToolBar.addAction(exit);

self.label_img.setContextMenuPolicy(Qt.ActionsContextMenu) #设置右键菜单 添加action为右键菜单

因为创建一个QAction 需要6行代码左右,如果一个窗口有几个QAction的话 会很繁琐 所以我们可以定义一个方法 这个可以简单点

def createAction(self,text,slot=None,shortcut=None,icon=None,tip=None,checkable=False,signal="triggered()"):

action=QAction(text,self)

if icon is not None:

action.setIcon(QIcon("im.png"))

if shortcut is not None:

action.setShortcut(shortcut)

if tip is not None:

acton.setToolTip(tip)

action.setStatusTip(tip)

if slot is not None:

self.connect(action,SIGNAL(signal),slot)

if checkable:

action.setCheckable(checkable)

return action

PyQt4 QSettings 使用教程

setting=QSettings()

setting.setValue("lab",QVariant(50)) #设置一个lab键的 值

setting.value("lab")

为了使QSettings()起作用 在程序运行段 也就是app=QApplication() 以后 加上以下 一行 app.setOrganizationName("ds")

PyQt4 QDockWidget 使用教程

在pyqt4 中 dock 是一个镶嵌在主窗口 而又能拉出来成立一个独立窗口的控件 ,dock 是QDockWidget 的对象

dock=QDockWidget('title',self) #实例化一个dock title 为标题 self 为parent 因为QDockWidget 不添加到布局管理器中 所以我们需要传一个parent 给他

dock.setObjectName("dock") #设置dock的对象名称

dock.setAllowedAreas(Qt.LeftDockWidgetArea |Qt.RightDockWidgetArea) #设置dock只能在左边 或者右边显示

allowedareas 有Qt.LeftDockWidgetArea Qt.RightDockWidgetArea Qt.TopDockWidgetArea Qt.BottomDockWidgetArea Qt.AllDockWidgetAreas

dock.setWidget(QLabel) #添加一个label控件

dock.setFeatures(QDockWidget.NoDockWidgetFeatures) #设置dock是否可以关闭 拉出等

参数还有 QDockWidget.DockWidgetClosable 可以关闭 DockWidgetMovable 可以移动

DockWidgetFloatable #可以独立出来 DockWidgetVerticalTitleBar 垂直显示标题 AllDockWidgetFeatures 除垂直标题以外 以上所有 NoDockWidgetFeatures

self.addDockWidget(Qt.RightDockWidget,dock) 添加dock到主窗口 第一个参数为显示位置

PyQt4 QCheckBox 使用教程

setChecked(bool) 设置是否选择

isChecked() 返回bool

发出toggled(bool)信号

PyQt4 QTableWidget 使用教程

self.table=QTableWidget() #实例化

self.table.setColumnCount(4) #设置列数

self.table.setRowCount(6) #设置行数

self.table.setWhatsThis("mantou") ###

self.table.setEditTriggers(QTableWidget.NoEditTriggers) #设置为不能编辑单元格

#set Column tab title

self.table.setHorizontalHeaderLabels(list(range(5,10)))

self.table.setVerticalHeaderLabels(["a","d"] ) #设置 行title

self.table.setAlternatingRowColors(bool) #设置交替行颜色

for i in range(0,5):

for x in range(0,7):

item=QTableWidgetItem(str(i+x)) 实例一个item对象

item.setTextAlignment(Qt.AlignLeft |Qt.AlignCenter) 设置对齐方式

item.setBackgroundColor(Qt.green) 设置背景

self.table.setItem(x,i,item) 添加Item

PyQt4 QInputDialog 使用教程

string, ok = QInputDialog.getText(self, '标题', '说明文字') #   显示一个标题为标题 说明文字为说明问题的输入对话框!string 为输入的内容 ok 为点击的按钮

if ok and not string.isEmpty(): #如果点击了确定   输入了内容

pss

PyQt4 QPushButton 使用教程

button = QPushButton('***) # 实例化一个text为***)的按钮

button.setFocusPolicy() #设置焦点样式 样式有:Qt.NoFocus: 无焦点,Qt.TabFocus:用tab切换焦点,Qt.ClickFocus:点击切换焦点,Qt.StrongFocus:貌似跟click一样 Qt.WheelFocus

button.setCheckable(True) #设置为开关按钮 toggle 就是按下按钮不会弹起

button.isChecked() 返回bool值 只有setCheckable()为true时有效

button.setShortcut('Ctrl+F') #设置快捷方式

#Pyqt

PyQt4 ButtonBox

buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel)
buttonBox.accepted.connect(self.accept)
buttonBox.rejected.connect(self.reject)

PyQt4 QMessageBox() 使用教程

message=QtGui.QMessageBox.question(self,u'提示:',u'你确认要退出?',QtGui.QMessageBox.Yes,QtGui.QMessageBox.No,QtGui.QMessageBox.Cancel|QMessageBox::Escape)

#弹出对话框 QMessageBox.question ,QMessageBox.warning 为类型

if message ==QtGui.QMessageBox.Yes:

event.accept()

else:

event.ignore()

message=QtGui.QMessageBox.warning(parent,"title",u"message")

PyQt4 QFont QPixmap QIcon 使用教程

font = QFont("Helvetica", 36, QFont.Bold) #得到一个font object 参数依次是 字体名,大小 ,其他字   体属性

fm = QFontMetrics(font) # 获得font字体输出后占据的矩形大小

fm.height() fm.width() #长宽

icon=QIcon("sd.png")

PyQt4 QTextBrowser 使用教程

browser = QTextBrowser() #实例化一个textbrowser

browser.append('sdfsdfds') #追加内容

browser.setOpenLinks(True) #打开文档内部链接 默认为True

browser.setOpenExternalLinks(True) #打开外部链接 默认false 当openlinks设置false时 该选项无效

textbrowser.setSearchPaths(["ldks",":/sdfs"]) #设置文档搜索路径 参数为包含目录的List

textbrowser.setSource("index.html") #设置文档

dt=textbrowser.documentTitle() #返回文档的标题

self.connect(textbrowser,SIGNAL("SourceChanged(QUrl)"),self.update) #发出一个SourceChanged(QUrl)信号

textbrowser同时 具有以下插槽: home() :返回主文档, backward() #返回上一文档,forward()前进

browser.setDocumentTitle('dsds') #设置文档标题

PyQt4 QLineEdit 使用方法

QLineEdit 单行输入框

lineedit = QLineEdit() 实例化一个输入框

lineedit.setText(‘abc’)  设置'abc'给 lineedit

lineedit.text()

lineedit.toPlainText()   获得lineedit的值

lineedit =setReadOnly(True) #设置为只读

lineedit.setDragEnabled(True) #设置能接受拖放

lineedit.setMaxLength(5) #设置最大长度

lineedit.selectAll() #全选

lineedit.setFocus() #得到焦点

lineedit.setInputMask("dx") #设置修饰 该输入框必须输入两个字符

punctuationRe = QRegExp(r"[ ,;:.]") #得到一个regexp对象 可用下面的验证

lineedit.setValidator(QRegExpValidator(QRegExp(r"[0-9]+")),self) #设置验证 检验用户输入内容

lineedit.emit(SIGNAL('textChanged(QString)')) 发出 信号 (设置为只读时貌似发不出 没有具体测试)

lineedit.emit(SIGNAL(textEdited(QString)')) 发出 信号 如果设置了验证 该信号在通过验证才能发出 (设置为只读时貌似发不出 没有具体测试)

QTextEdit多行输入框

textedit=QTextEdit()

textedit.setText(data)

textedit.append(data) 追加

textedit.setPlainText(text) set 大段文本

textedit.toPlainText() 获得文本内容

PyQt4 QDial QSpinbox 使用方法

dial = QDial() #实例化一个dial

dial.setNotchesVisible(True) #设置边缘

dial.emit('SIGNAL(valueChanged(int))') #发出信号

具有 SLOT("setValue(int)") 的插槽

spin=QSpinBox() #实例化

spinbox.setSingleStep(2) #设置步长 ( QDial 有)

spinbox.setRange(1,50)#范围

spinbox.setMaximum(10) #设置最大值 ( QDial 有)

spinbox.setMinimum(5) 设置最小值 ( QDial 有)

spinbox.setValue(6) 设置当前值 ( QDial 有)

print spinbox.value() 得到当前值 ( QDial 有)

PyQt4 QComboBox QDoubleSpinBox 使用方法

fromComboBox = QComboBox() 添加一个 combobox

fromComboBox.addItem(rates) 添加一个下拉选项

fromComboBox.addItems(["%d years" % x for x in range(2, 26)]) 从序列中添加

fromComboBox.setMaxVisibleItems(10) #设置最大显示下列项 超过要使用滚动条拖拉

fromComboBox.setMaxCount(5) #设置最大下拉项 超过将不显示

fromComboBox.setInsertPolicy(QComboBox.InsertAfterCurrent) #设置插入方式

插入方式有:NoInsert,InsertAtTop,InsertAtCurrent,InsertAtBottom,InsertAfterCurrent

InsertBeforeCurrent,InsertAlphabetically

字面意思都好理解 最后一个是按字母表顺序插入

QComboBox 发出一个currentIndexChanged(int) 的信号.

QComboBox 得到当前项 currentIndex() + 1 #QComboBox 默认的currentIndex为 -1

QComboBox.findText('dsfds') #返回 内容为dsfds的索引

QComboBox 得到当前项文本内容     currentText()

fromSpinBox = QDoubleSpinBox()

fromSpinBox.setRange(0.01, 10000000.00)

fromSpinBox.setSuffix(" %d") #设置后缀 如显示 10.0%d

fromSpinBox.setPrefix('#d') #设置前缀

fromSpinBox.setValue(1.00) 设置值

QDoubleSpinBox 发出 valueChanged(double) 信号 有setValue(double)插槽

PyQt4 formLayout

self.formGroupBox = QtGui.QGroupBox("Form layout")
layout = QtGui.QFormLayout()
layout.addRow(QtGui.QLabel("Line 1:"), QtGui.QLineEdit())
layout.addRow(QtGui.QLabel("Line 2, long text:"), QtGui.QComboBox())
layout.addRow(QtGui.QLabel("Line 3:"), QtGui.QSpinBox())

self.formGroupBox.setLayout(layout)

PyQt4 QListWidget 使用教程的更多相关文章

  1. 关于eric4和pyqt的入门学习(转)

    在Eric4下用PyQt4编写Python的图形界面程序 转载请注明作者RunningOn 本文是PyQt4的入门教程.网上能搜到其它教程,但我觉得讲得不是很清楚,希望这篇文章对入门者更加有帮助. 先 ...

  2. 收集的一些python基础教学博客

    =======python3学习链接======= Python 3 教程:http://www.runoob.com/python3/python3-tutorial.html 深入python3: ...

  3. 读Pyqt4教程,带你入门Pyqt4 _006

    窗口组件是应用程序的基本构建块.PyQt4编程工具包拥有范围广泛的各种窗口组件.按钮.选择框.滑块.列表框等等,程序员工作所需要的一切.在教程的这部分中,我们将介绍一些有用的窗口组件. QCheckB ...

  4. 读Pyqt4教程,带你入门Pyqt4 _005

    对话框窗体或对话框是现代GUI应用不可或缺的一部分.dialog定义为两个或多个人之间的交谈.在计算机程序中dialog是一个窗体,用来和程序“交谈”.对话框用来输入数据.修改数据.改变程序设置等等. ...

  5. 读Pyqt4教程,带你入门Pyqt4 _004

    在PyQt4教程的这部分中,我们将探讨应用中事件和信号的发生. 事件是GUI程序的重要部分,由用户或者系统产生.当我们调用应用的 exec_() 方法,应用进入主循环.主循环获取事件并把它们发往对象. ...

  6. 读Pyqt4教程,带你入门Pyqt4 _003

    编程中的一个重要事情是布局管理,布局管理是如何在窗体上摆放窗口组件.可以有两种方式进行管理:绝对定位或使用布局类. 绝对定位 程序员用像素指定每个控件的位置和尺寸.使用绝对定位时,你必须理解几件事情. ...

  7. 读Pyqt4教程,带你入门Pyqt4 _002

    在这节教程中,我们将创建菜单和工具栏. QMainWindow 类提供应用程序主窗口,可以创建一个经典的拥有状态栏.工具栏和菜单栏的应用程序骨架. 菜单栏 菜单栏是GUI应用程序最明显的部分之一,这是 ...

  8. 读Pyqt4教程,带你入门Pyqt4 _013

    你是否曾经看着应用程序并思考特定的GUI项是如何产生的?大概每位程序员都这样过.然后你能看到你喜欢的GUI库提供的一系列窗口组件,但是你无法找到它.工具包通常仅仅提供最常用的窗口组件,比如按钮.文本组 ...

  9. 读Pyqt4教程,带你入门Pyqt4 _012

    颜色 颜色是指一个代表红(Red).绿(Green).蓝(Blue)(RGB)强度值组合的对象,有效的RGB值在0~255之间.我们可以用多种方式定义颜色,最常用的是RGB十进制或者十六进制值.也可以 ...

随机推荐

  1. 移动自动化测试:Android Studio 、Appium、夜神模拟器

    环境是Window 10 64位 第一章:安装Appium Appium和node.js需要一起安装,他们的依赖关系暂不深究. 1. node.js傻瓜式安装 官网地址:https://nodejs. ...

  2. Git 安装部署

    CentOS6的yum源中已经有git的版本了,可以直接使用yum源进行安装. yum install/remove git 但是yum源中安装的git版本是1.7.1,太老了,Github等需要的G ...

  3. Office 2016激活教程(附KMS激活软件)

    首先下载office 2016办公软件文件名:cn_office_professional_plus_2016_x86_x64_dvd_6969182.isoSHA1:277926A41B472EE3 ...

  4. CFGym 101490E 题解

    一.题目链接 http://codeforces.com/gym/101490 二.题面 三.题意 给你一个图,n个点,m条边,一个x,从顶点1走到顶点n.假设从顶点1走到顶点n的最短路为d,x代表你 ...

  5. android.support.v7.internal.widget.ActionBarOverlayLayout Couldn't Be Initialized

    问题症状: Android Studio 1.2 (Build 141.1890965) 新建工程,自动build完成后,Layout Editor无法预览Layout文件,报错内容: Renderi ...

  6. 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #13 使用Block I/O控制器设置I/O优先级

    HACK #13 使用Block I/O控制器设置I/O优先级 本节介绍使用Block I/O控制器的功能设置I/O优先级的方法.Block I/O控制器可以将任意进程分组,并对该分组设置I/O的优先 ...

  7. Solr调研总结(很详细很全面)

    Solr调研总结 开发类型 全文检索相关开发 Solr版本 4.2 文件内容 本文介绍solr的功能使用及相关注意事项;主要包括以下内容:环境搭建及调试;两个核心配置文件介绍;维护索引;查询索引,和在 ...

  8. django-控制mysql事物

    from django.db import transaction 两种方式控制事务:为了保持数据一致性 一个Book表,一个Author表.添加一本书,也要保证添加作者.By事物控制 book = ...

  9. [代码]multimap员工分组案例

    案例要求: //multimap 案例//公司今天招聘了 5 个员工,5 名员工进入公司之后,需要指派员工在那个部门工作//人员信息有: 姓名 年龄 电话 工资等组成//通过 Multimap 进行信 ...

  10. [/usr/local/openssl//.openssl/include/openssl/ssl.h] Error 127

    /bin/sh: line 2: ./config: No such file or directorymake[1]: *** [/usr/local/ssl/.openssl/include/op ...