我遇到了一个问题,当我选择不保存我的文件并单击系统窗口上的“取消”时,程序将崩溃。这是我收到的错误:
Traceback (most recent call last):
File "BasicEmail.py", line 166, in save_content
with open(file_name[0], 'w') as f:
FileNotFoundError: [Errno 2] No such file or directory: ''
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的代码:
def save_content(self):
file_name = QtWidgets.QFileDialog.getSaveFileName(self,'Save File',os.getenv('HOME'))
if file_name:
with open(file_name[0], 'w') as f:
my_text = self.content.toPlainText()
f.write(my_text)
Run Code Online (Sandbox Code Playgroud)
先感谢您。我知道我一定错过了什么。
我正在尝试从欢迎屏幕加载带有 UI 窗口的新类,同时关闭欢迎屏幕。当我单击按钮打开新窗口时,它可以正常打开,但我只想关闭操作事件的第一个窗口。
我已经尝试过.hide(),,,.terminate()但.destroy()窗口仍然存在。
这是相关代码:
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
#self.email_blast_widget = EmailBlast()
#self.setCentralWidget(self.email_blast_widget)
self.welcome = OpeningWindow()
self.setCentralWidget(self.welcome)
bar = self.menuBar()
file_file = bar.addMenu('File')
file_edit = bar.addMenu('Edit')
def load_email(self):
self.mail = EmailBlast()
self.mail.show()
self.welcome = OpeningWindow()
self.destroy()
class OpeningWindow(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.welcome = QtWidgets.QLabel("Welcome To Zach's \nEmail Blast Widget")
self.email_button = QtWidgets.QPushButton("Email")
self.csv_button = QtWidgets.QPushButton("CSVs")
self.exit_button = QtWidgets.QPushButton("Exit")
self.init_ui()
def init_ui(self):
# set layout to place widgets
self.email_button.clicked.connect(self.load_email)
self.csv_button.clicked.connect(self.load_csv)
#self.exit_button.clicked.connect(self.exit)
self.exit_button.clicked.connect(QtWidgets.qApp.quit)
class EmailBlast(QtWidgets.QWidget): …Run Code Online (Sandbox Code Playgroud) 我将从一个更大的 CSV 文件中收集分散的电子邮件。我现在正在学习正则表达式。我试图从这个例句中提取电子邮件。但是,电子邮件仅填充了@ 符号和紧接其之前的字母。你能帮我看看出了什么问题吗?
import re
String = "'Jessica's email is jessica@gmail.com, and Daniel's email is daniel123@gmail.com. Edward's is edwardfountain@gmail.com, and his grandfather, Oscar's, is odawg@gmail.com.'"
emails = re.findall(r'.[@]', String)
names = re.findall(r'[A-Z][a-z]*',String)
print(emails)
print(names)
Run Code Online (Sandbox Code Playgroud) 我正在尝试将菜单栏加载到我的gui上,但我的类对象没有self.menuBar()的属性.有人可以帮助我,没有教程似乎提供任何方式.
class EmailBlast(QtWidgets.QWidget):
def __init__(self):
super().__init__()
bar = QtWidgets.menuBar()
file_menu = bar.addMenu('File')
file_edit = bar.addMenu('Edit')
Run Code Online (Sandbox Code Playgroud)
错误信息:
File "BasicEmail.py", line 84, in email_config
self.ui = EmailBlast()
File "BasicEmail.py", line 96, in __init__
self.menuBar()
AttributeError: 'EmailBlast' object has no attribute 'menuBar'
Run Code Online (Sandbox Code Playgroud)
我在这里想念的是什么
更新项目:
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.email_blast_widget = EmailBlast()
self.setCentralWidget(self.email_blast_widget)
bar = self.menuBar()
file_file = bar.addMenu('File')
file_edit = bar.addMenu('Edit')
class EmailBlast(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.text_box = QtWidgets.QTextEdit(self)
self.save_button = QtWidgets.QPushButton('Save')
self.clear_button = QtWidgets.QPushButton('Clear')
self.open_button = QtWidgets.QPushButton('Open')
self.init_ui()
Run Code Online (Sandbox Code Playgroud)