我最近一直在使用python和pyqt进行UI设计。目前,我正在创建一个弹出式屏幕中,用户将选择他们的名字,点击登录,以进一步使用任何应用程序。我的目标是将用户登录的历史记录存储为一个集合(可能是一个列表),以便进一步维护。分享弹出屏幕相关的基本代码。
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class Login(QDialog):
def __init__(self, parent=None):
self.contributors=['','A','B','C']
super(Login, self).__init__(parent)
self.nameLabel=QLabel(self)
self.nameLabel.setText("Select Your name")
self.nameLabel.setAlignment(Qt.AlignHCenter)
self.cb=QComboBox(self)
self.cb.setGeometry(QRect(40,40,491, 31))
self.cb.setObjectName(("comboBox"))
self.cb.addItems(self.contributors)
self.cb.currentIndexChanged.connect(self.getEditor)
self.buttonLogin = QPushButton('Login', self)
self.buttonLogin.clicked.connect(self.close)
layout = QVBoxLayout(self)
layout.addWidget(self.nameLabel)
layout.addWidget(self.cb)
layout.addWidget(self.buttonLogin)
self.resize(600,150)
self.exec_()
def getEditor(self):
text=str(self.cb.currentText())
return text
if __name__ == '__main__':
app = QApplication(sys.argv)
login=Login()目前,我正在存储一个文本文件,其中包含从组合框中选择的所有名称,并对其进行操作。有没有一种更干净的方法来获取使用该工具的用户列表?我正在尝试避免创建额外的文本文件。
任何帮助都是受欢迎的。我不能通过搜索得到相关的答案。如果此问题已得到回答,请将我引向该链接。提前谢谢。
发布于 2018-03-21 21:30:34
在"a+“方法中打开一个文件意味着,如果具有指定名称的文件存在,则向该文件追加文本,如果该特定文件不存在,则创建一个具有该名称的文件。
class Login(QDialog):
def __init__(self, parent=None):
self.contributors=['','A','B','C']
super(Login, self).__init__(parent)
...
self.buttonLogin = QPushButton('Login', self)
self.buttonLogin.clicked.connect(self.user_entered)
...
def user_entered(self):
text = str(self.cb.currentText())
with open("my log file", "a+") as file: # wirting user name into a file
file.write(text + "\n")
self.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
login=Login()
login.show()
app.exec_() # delete the exec_() call in your window __init__https://stackoverflow.com/questions/49377049
复制相似问题