pyqt增删例子(官方提供)

#############################################################################

##

## Copyright (C) 2010 Hans-Peter Jansen <[email protected]>.

## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).

## All rights reserved.

##

## This file is part of the examples of PyQt.

##

## $QT_BEGIN_LICENSE:BSD$

## You may use this file under the terms of the BSD license as follows:

##

## "Redistribution and use in source and binary forms, with or without

## modification, are permitted provided that the following conditions are

## met:

##   * Redistributions of source code must retain the above copyright

##     notice, this list of conditions and the following disclaimer.

##   * Redistributions in binary form must reproduce the above copyright

##     notice, this list of conditions and the following disclaimer in

##     the documentation and/or other materials provided with the

##     distribution.

##   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor

##     the names of its contributors may be used to endorse or promote

##     products derived from this software without specific prior written

##     permission.

##

## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS

## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR

## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT

## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,

## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY

## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE

## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."

## $QT_END_LICENSE$

##

#############################################################################

from PyQt4 import QtGui

class Window(QtGui.QWidget):

def __init__(self, parent=None):

super(Window, self).__init__(parent)

# Set up the model.

self.setupModel()

# Set up the widgets.

nameLabel = QtGui.QLabel("Na&me:")

nameEdit = QtGui.QLineEdit()

addressLabel = QtGui.QLabel("&Address:")

addressEdit = QtGui.QTextEdit()

ageLabel = QtGui.QLabel("A&ge (in years):")

ageSpinBox = QtGui.QSpinBox()

self.nextButton = QtGui.QPushButton("&Next")

self.previousButton = QtGui.QPushButton("&Previous")

nameLabel.setBuddy(nameEdit)

addressLabel.setBuddy(addressEdit)

ageLabel.setBuddy(ageSpinBox)

# Set up the mapper.

self.mapper = QtGui.QDataWidgetMapper(self)

self.mapper.setModel(self.model)

self.mapper.addMapping(nameEdit, 0)

self.mapper.addMapping(addressEdit, 1)

self.mapper.addMapping(ageSpinBox, 2)

# Set up connections and layouts.

self.previousButton.clicked.connect(self.mapper.toPrevious)

self.nextButton.clicked.connect(self.mapper.toNext)

self.mapper.currentIndexChanged.connect(self.updateButtons)

layout = QtGui.QGridLayout()

layout.addWidget(nameLabel, 0, 0, 1, 1)

layout.addWidget(nameEdit, 0, 1, 1, 1)

layout.addWidget(self.previousButton, 0, 2, 1, 1)

layout.addWidget(addressLabel, 1, 0, 1, 1)

layout.addWidget(addressEdit, 1, 1, 2, 1)

layout.addWidget(self.nextButton, 1, 2, 1, 1)

layout.addWidget(ageLabel, 3, 0, 1, 1)

layout.addWidget(ageSpinBox, 3, 1, 1, 1)

self.setLayout(layout)

self.setWindowTitle("Simple Widget Mapper")

self.mapper.toFirst()

def setupModel(self):

self.model = QtGui.QStandardItemModel(5, 3, self)

names = ("Alice", "Bob", "Carol", "Donald", "Emma")

addresses = ("<qt>123 Main Street<br/>Market Town</qt>",

"<qt>PO Box 32<br/>Mail Handling Service"

"<br/>Service City</qt>",

"<qt>The Lighthouse<br/>Remote Island</qt>",

"<qt>47338 Park Avenue<br/>Big City</qt>",

"<qt>Research Station<br/>Base Camp<br/>Big Mountain</qt>")

ages = ("20", "31", "32", "19", "26")

for row, name in enumerate(names):

item = QtGui.QStandardItem(name)

self.model.setItem(row, 0, item)

item = QtGui.QStandardItem(addresses[row])

self.model.setItem(row, 1, item)

item = QtGui.QStandardItem(ages[row])

self.model.setItem(row, 2, item)

def updateButtons(self, row):

self.previousButton.setEnabled(row > 0)

self.nextButton.setEnabled(row < self.model.rowCount() - 1)

if __name__ == ‘__main__‘:

import sys

app = QtGui.QApplication(sys.argv)

window = Window()

window.show()

sys.exit(app.exec_())

如图:

时间: 2024-10-01 07:18:06

pyqt增删例子(官方提供)的相关文章

pyqt QTreeWidget例子学习

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import  * from PyQt4.Qt import * from PyQt4.QtCore import * import sys class Tree(QMainWindow): def __init__(self,parnet=None): super(Tree,self).__init__(parnet) self.

AndroidOrientation Sensor(方向传感器),新的替代方法详解(安卓官方提供)

本文将带大家去解读下安卓官方关于方向传感器数据,提供的新方法.熟悉手机传感器开发的朋友对这段代码一定不会陌生吧. sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_NORMAL); sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_GRAVITY), 在高版本的安卓中,Sensor.T

Android 官方提供的支持屏幕大小的全部方法(精华)

本文将告诉你如何让你的应用程序支持各种不同屏幕大小,主要通过以下几种办法: 让你的布局能充分的自适应屏幕 根据屏幕的配置来加载合适的UI布局 确保正确的布局应用在正确的设备屏幕上 提供可以根据屏幕大小自动伸缩的图片 使用 "wrap_content" 和 "match_parent" 为了确保你的布局能够自适应各种不同屏幕大小,你应该在布局的视图中使用"wrap_content"和"match_parent"来确定它的宽和高.

pyqt QTableWidget例子学习(重点)

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import * from PyQt4.Qt import * from PyQt4.QtCore import * lista = ['aa', 'ab', 'ac'] listb = ['ba', 'bb', 'bc'] listc = ['ca', 'cb', 'cc'] mystruct = {'A':lista, 'B':

pyqt 正则表达式例子学习

def rex01(self): username=QtCore.QRegExp('[a-zA-Z0-9_]{2,10}') self.names.setValidator(QtGui.QRegExpValidator(username,self)) mainname=QtCore.QRegExp("^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$") self.mains.setValidator(QtGui.QRegExpValidator(mainnam

利用高德地图官方提供的API实现模拟定位的功能

使用高德地图API需要申请一个开发者ID号以及我所用的相关资源:  http://pan.baidu.com/disk/home?fr=ibaidu 该文件夹中有一个官方文档,AMap_IOS_API_Guid,提供了使用方法供开发者参阅. 利用高德地图官方提供的API实现模拟定位的功能,布布扣,bubuko.com

pyqt columnView例子学习

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import  * from PyQt4.Qt import * from PyQt4.QtCore import * import sys class Tree(QColumnView): def __init__(self,parnet=None,*args): super(Tree,self).__init__(parnet,

pyqt 托盘例子学习

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import * from PyQt4.Qt import * from PyQt4.QtCore import * from tp import Ui_Form import sys from PyQt4.QtCore import Qt QTextCodec.setCodecForTr(QTextCodec.codecForNa

pyqt tabWidget例子学习1

from PyQt4 import QtGui from PyQt4 import QtCore from PyQt4.QtCore import pyqtSlot,SIGNAL,SLOT import sys class myTabWidget(QtGui.QTabWidget): def tabChangedSlot(self,argTabIndex): QtGui.QMessageBox.information(self,"Tab Index Changed!", "C