先亮出代码今天的文本框代码吧!
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())