Python文字框與按鈕

ckxllf發表於2020-04-02

  import sys

  from PyQt5.QtWidgets import QWidget, QLabel,QLineEdit,QApplication

  class Example(QWidget):

  def __init__(self):

  super().__init__()

  self.settings()

  def settings(self):

  a = QLabel(self)

  a.setText('使用者名稱:')

  a.move(40,102)

  b = QLineEdit(self)

  b.setPlaceholderText('請輸入使用者名稱')

  b.move(100,100)

  c = QLabel(self)

  c.setText('密碼:')

  c.move(40, 152)

  d = QLineEdit(self)

  d.setPlaceholderText('請輸入密碼')

  d.move(100, 150)

  self.setGeometry(300, 300, 500, 300)

  self.setWindowTitle('文字框')

  self.show()

  if __name__ == '__main__':

  app = QApplication(sys.argv)

  ex = Example()

  sys.exit(app.exec_())

  這個變數名其實是不對的。在正式程式設計做專案的時候,大家不要取什麼abc,一定要取與變數作用相同的變數名。比如一個變數的作用是等待的秒數,那變數名就是wait_sec,簡單點,也可以是wait,但是不能是a。這樣變數一多,你就不知道這個變數是幹嘛的了。當然也可以在設定變數的時候加註釋。我們這只是教程,變數少,所以這樣更加簡便。

  現在我們來講這個文字框。

  a與c都是標籤。b與d是文字框。文字框其實就是讓你輸入,類似於input,提示的語句就是setPlaceholderText。你所看到的淡色字,就是這樣設定的。

  當然,使用者輸入後你可以獲取到使用者輸入的東西:

  import sys

  from PyQt5.QtWidgets import QWidget,QLabel,QLineEdit,QApplication

  class Example(QWidget):

  def __init__(self):

  super().__init__()

  self.settings()

  def settings(self):

  a = QLabel(self)

  a.setText('使用者名稱:')

  a.move(40,102)

  b = QLineEdit(self)

  b.setPlaceholderText('請輸入使用者名稱')

  print(b.text())

  b.move(100,100)

  c = QLabel(self)

  c.setText('密碼:')

  c.move(40, 152)

  d = QLineEdit(self)

  d.setPlaceholderText('請輸入密碼')

  d.move(100, 150)

  self.setGeometry(300, 300, 500, 300)

  self.setWindowTitle('文字框')

  self.show()

  if __name__ == '__main__':

  app = QApplication(sys.argv)

  ex = Example()

  sys.exit(app.exec_())

  當然,你是不會看到效果的。為什麼???因為你一開始文字框裡是沒有輸入內容的。所以只輸出了空白。大家仔細看結果,是不是發現比平時執行完畢多空了一行,那就是輸出的內容。

  那麼怎麼能知道我們輸入了什麼呢?朋友們可以仔細想想,平時我們註冊或登入的時候,除了輸入,還有什麼?

  按鈕!!!

  所以由此我們再來學習一下按鈕,也是程式碼先上(與前面的無關):

  import sys

  from PyQt5.QtWidgets import QWidget,QLabel,QPushButton,QCheckBox,QApplication

  from PyQt5.QtGui import QFont

  class Example(QWidget):

  def __init__(self):

  super().__init__()

  self.settings()

  def settings(self):

  b1 = QPushButton("確定", self)

  b1.move(30, 50)

  b2 = QPushButton("取消", self)

  b2.move(150, 50)

  b1.clicked.connect(self.Clickedbutton)

  b2.clicked.connect(self.Clickedbutton)

  self.setGeometry(300, 300, 390, 350)

  self.setWindowTitle('按鈕')

  self.show()

  def Clickedbutton(self):

  print(self.sender())

  print(self.sender().text() + '被使用者按下')

  按鈕由QPushButton建立。大家注意,按鈕的名字在第一個引數位,第二個一般都是self,如果你不懂。希望你可以試試改成別的變數,然後就懂了,這裡給大家留個小小的動手專案。然後在視窗設定前的b1.clicked.connect(self.Clickedbutton)與b2.clicked.connect(self.Clickedbutton)是什麼呢?

  那個是繫結訊號。按鈕其實有更多的,不過我只講這個。因為其它的有點複雜。我講的話又要牽涉好多複雜的知識。所以,我打算只講這個。

  繼續講。兩個按鈕繫結了訊號,然後就執行Clickedbutton裡的內容。說簡單了,就是按下按鈕後,執行Clickedbutton這個函式里的內容。

  Clickedbutton裡的第一個輸出是輸出這個button。這個我們上次也講過,就是會輸出這種:,其實就是輸出這個button的資訊。如果你要列印出這個按鈕的名字,就是self.sender().text()。

  現在我們兩個串起來用,解決我們剛剛的問題:

  import sys 鄭州看婦科哪家醫院好

  from PyQt5.QtWidgets import QWidget, QLabel,QLineEdit,QApplication,QPushButton

  class Example(QWidget):

  def __init__(self):

  super().__init__()

  self.settings()

  def settings(self):

  self.setGeometry(300, 300, 500, 300)

  self.setWindowTitle('文字框')

  self.a = QLabel(self)

  self.a.setText('使用者名稱:')

  self.a.move(40,102)

  self.b = QLineEdit(self)

  self.b.setPlaceholderText('請輸入使用者名稱') #設定文字框浮現文字

  self.b.move(100,100)

  self.c = QLabel(self)

  self.c.setText('密碼:')

  self.c.move(40, 152)

  self.d = QLineEdit(self)

  self.d.setPlaceholderText('請輸入密碼')

  self.d.move(100, 150)

  self.yes = QPushButton('確定',self)

  self.yes.move(250,250)

  self.yes.clicked.connect(self.Clickedbutton)

  self.show()

  def Clickedbutton(self):

  print('使用者名稱為:' + self.b.text())

  print('密碼為:' + self.d.text())

  當然,如果你想把這個輸出放到介面上,就用標籤setText就行了。大家可以去嘗試嘗試。在這裡我給大家一點建議與提示。就是設定abcd與yes變數的時候,最好加個self.,這樣可以在整個類中用。如果你沒加,那就有點麻煩。所以大家設定這種變數的時候,儘量加一個self.。如果你以後想在類的其它地方用,那麼就可以隨便呼叫了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2684162/,如需轉載,請註明出處,否則將追究法律責任。

相關文章