小编Ewo*_*ugz的帖子

QFileDialog 上的取消按钮

我遇到了一个问题,当我选择不保存我的文件并单击系统窗口上的“取消”时,程序将崩溃。这是我收到的错误:

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)

先感谢您。我知道我一定错过了什么。

python pyqt pyqt5

3
推荐指数
1
解决办法
2595
查看次数

PyQt5中打开窗口和关闭窗口

我正在尝试从欢迎屏幕加载带有 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)

python user-interface pyqt5

2
推荐指数
1
解决办法
2万
查看次数

在 Python 中使用正则表达式捕获电子邮件

我将从一个更大的 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)

python regex string

0
推荐指数
1
解决办法
2513
查看次数

PyQt5中的menuBar()

我正在尝试将菜单栏加载到我的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)

python menu pyqt pyqt5

-2
推荐指数
1
解决办法
5495
查看次数

标签 统计

python ×4

pyqt5 ×3

pyqt ×2

menu ×1

regex ×1

string ×1

user-interface ×1