c++文本框_如何实现Python的文本框与按钮

我来了。先亮出代码今天的文本框代码吧!

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。这样变量一多,你就不知道这个变量是干嘛的了。当然也可以在设定变量的时候加注释。我们这只是教程,变量少,所以这样更加简便。

aff3c96a9517362c1659f74ed55aac91.png

现在我们来讲这个文本框。

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_())

当然,你是不会看到效果的。为什么???因为你一开始文本框里是没有输入内容的。所以只输出了空白。大家仔细看结果,是不是发现比平时运行完毕多空了一行,那就是输出的内容。

1f1d3f6b47b4f8ba1430dacd5a6a0bac.png

那么怎么能知道我们输入了什么呢?朋友们可以仔细想想,平时我们注册或登录的时候,除了输入,还有什么?

按钮!!!

所以由此我们再来学习一下按钮,也是代码先上(与前面的无关):

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.。如果你以后想在类的其它地方用,那么就可以随便调用了。

山东掌趣网络科技

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 文件读写可以通过使用代码实现,比如使用python的open()函数,可以实现打开文件,read()函数可以实现从文件中读取内容,write()函数可以实现写入文件,close()函数可以实现关闭文件。 ### 回答2: 可以通过使用Python的文件读写功能和tkinter库来实现上下页按功能。 首先,需要导入所需的库: ```python import tkinter as tk ``` 接下来,我们可以定义一个函数`show_previous_page`来读取并显示上一页的内容: ```python def show_previous_page(): global current_page # 关闭当前文件 file.close() # 计算上一页的页码 previous_page = current_page - 1 try: # 打开上一页的文件 file = open(f"page{previous_page}.txt", "r") # 读取上一页的内容 content = file.read() # 在文本框中显示内容 text_box.delete("1.0", tk.END) text_box.insert(tk.END, content) # 更新当前页码 current_page = previous_page except FileNotFoundError: # 处理找不到文件的情况 print("找不到上一页的文件") ``` 然后,我们可以定义一个函数`show_next_page`来读取并显示下一页的内容: ```python def show_next_page(): global current_page # 关闭当前文件 file.close() # 计算下一页的页码 next_page = current_page + 1 try: # 打开下一页的文件 file = open(f"page{next_page}.txt", "r") # 读取下一页的内容 content = file.read() # 在文本框中显示内容 text_box.delete("1.0", tk.END) text_box.insert(tk.END, content) # 更新当前页码 current_page = next_page except FileNotFoundError: # 处理找不到文件的情况 print("找不到下一页的文件") ``` 最后,我们可以创建一个窗口,添加上下页按和一个用来显示文本内容的文本框: ```python # 创建窗口 window = tk.Tk() # 添加上下页按 previous_button = tk.Button(window, text="上一页", command=show_previous_page) previous_button.pack() next_button = tk.Button(window, text="下一页", command=show_next_page) next_button.pack() # 添加文本框 text_box = tk.Text(window) text_box.pack() # 初始化当前页码 current_page = 1 file = open("page1.txt", "r") content = file.read() text_box.insert(tk.END, content) # 运行窗口主循环 window.mainloop() ``` 通过上述代码,我们就可以实现一个具有上下页按功能的文件读写应用。每次点击上一页或下一页按时,会关闭当前文件,打开并读取指定的文件内容,并在文本框中显示出来。同时,当前页码也会被更新。 ### 回答3: 要实现通过上下页按来读写文件,可以使用Python的文件读写操作和GUI库(如Tkinter)来实现。 首先,我们需要创建一个文本文件,并将要读写的内容保存在其中。可以使用Python的文件操作函数(如open()和write())来创建和写入内容到文件中。 接下来,使用GUI库来创建一个窗口界面,并添加两个按“上一页”和“下一页”。可以使用Tkinter库中的Button()函数来创建按。 然后,编写函数来处理上下页按的点击事件。每当点击“上一页”按时,读取上一页的内容并在窗口中显示。每当点击“下一页”按时,读取下一页的内容并在窗口中显示。 为了实现分页读取文件的功能,可以使用Python的文件读取函数(如readlines())来读取文件的所有行,并将其存储在一个列表中。然后,通过控制列表的索引和切片来实现分页读取。 最后,将按绑定到相应的处理函数,并运行GUI窗口的主循环。 示例代码如下: ```python import tkinter as tk def read_prev_page(): global current_page, lines if current_page > 0: current_page -= 1 text.delete(1.0, tk.END) text.insert(tk.END, lines[current_page]) def read_next_page(): global current_page, lines if current_page < len(lines) - 1: current_page += 1 text.delete(1.0, tk.END) text.insert(tk.END, lines[current_page]) # 创建文件并写入内容 file_name = "file.txt" with open(file_name, "w") as f: f.write("第一页的内容\n") f.write("第二页的内容\n") f.write("第三页的内容\n") f.write("第四页的内容\n") # 读取文件并存储每一页的内容 with open(file_name, "r") as f: lines = f.readlines() # 创建GUI窗口 window = tk.Tk() current_page = 0 # 创建按 prev_btn = tk.Button(window, text="上一页", command=read_prev_page) prev_btn.pack() next_btn = tk.Button(window, text="下一页", command=read_next_page) next_btn.pack() # 创建文本框 text = tk.Text(window) text.pack() # 显示初始页内容 text.insert(tk.END, lines[current_page]) # 运行窗口主循环 window.mainloop() ``` 通过上述代码实现,我们可以点击“上一页”和“下一页”按来分页显示文件的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值