PyQt4 QListWidget 使用教程


轉自: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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM