首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python pyqt5提醒和记事本启动器

Python pyqt5提醒和记事本启动器
EN

Stack Overflow用户
提问于 2019-11-30 15:37:28
回答 1查看 225关注 0票数 0

我在Python上遇到了一个问题。我试着创建一个提醒和Notepad.There是没有问题的提醒,但记事本是相当难。我使用QPlainTextEdit打开.txt文件,保存笔记,所以on.The的问题是它不工作。您可以从fileeki类开始查找,因为notepad从那里开始。我的界面是用QTdesigner编写的,文件类型是ui。我使用的是主窗口,它是从.ui转换成.py的,但在.ui .Please help me中其他小部件都是照常的!

代码语言:javascript
复制
import sys

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QRadioButton, QVBoxLayout, QStatusBar
from PyQt5.QtWidgets import QLabel, QPushButton, QMessageBox, QFileDialog, QPlainTextEdit
from PyQt5.QtGui import QPixmap
from ui_filebir import Ui_MainWindow
from win10toast import ToastNotifier
import time
import sqlite3
import easygui 
from tkinter import filedialog
from tkinter import *


class MyWidget(QMainWindow,Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.resize(520, 300)

        self.pushButton.clicked.connect(self.notepad_run)
        self.re_but.clicked.connect(self.reminder_run)
        self.pushButton_2.clicked.connect(self.dbrun)
        self.rate = self.lineEdit.text()


    def dbrun(self):
        pass
        #con = sql.connect('dbrate.db')
        #cur = con.cursor()
        #cur.execute(query)
        #res = cur.execute(query)
        #con.commit()
        #con.close()


    def notepad_run(self):
        self.uineweki = fileeki()
        self.uineweki.show()
        self.close()

    def reminder_run(self):
        self.ui_fileush = fileush()
        self.ui_fileush.show()
        self.close()


class fileeki(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__()
        uic.loadUi('uineweki.ui', self)

        self.editor = QPlainTextEdit()

        self.path = None

        self.pushButton.clicked.connect(self.opening_run)
        self.pushButton_2.clicked.connect(self.saving_run)
        self.pushButton_3.clicked.connect(self.saveac)
        self.pushButton_4.clicked.connect(self.bak)

    def dialog_critical(self, s):
        dlg = QMessageBox(self)
        dlg.setText(s)
        dlg.setIcon(QMessageBox.Critical)
        dlg.show()

    def opening_run(self):
        path, _ = QFileDialog.getOpenFileName(self, "Open file", "", "Text documents (*.txt);All files (*.*)")

        if path:
            try:
                with open(path, 'rU') as f:
                    text = f.read()

            except Exception as e:
                self.dialog_critical(str(e))

            else:
                self.path = path
                self.editor.setPlainText(text)

    def saving_run(self):
        if self.path is None:

            return self.saveac()

        self._save_to_path(self.path)

    def saveac(self):
        path = QFileDialog.getSaveFileName(self, "Save file", "", "Text documents (*.txt);All files (*.*)")

        if not path:

            return

        self._save_to_path(self.path)

    def _save_to_path(self, path):
        text = self.editor.toPlainText()
        try:
            with open(path, 'w') as f:
                f.write(text)

        except Exception as e:
            self.dialog_critical(str(e))

        else:
            self.path = path
            self.update_title()

    def new_run(self):
        pass

    def bak(self):
        self.close()
        self.nazad = MyWidget()
        self.nazad.show()


class fileush(QWidget):
    def __init__(self, *args):
        super().__init__()

        uic.loadUi('ui_fileush.ui', self)
        self.pushButton.clicked.connect(self.running)
        self.pushButton_2.clicked.connect(self.bakk)

    def running(self):
        toaster = ToastNotifier()

        self.first_input = self.lineEdit.text()
        self.second_input = self.lineEdit_2.text()

        t = time.sleep(int(self.first_input))
        toaster.show_toast(self.second_input)


    def bakk(self):
        self.close()
        self.nazad = MyWidget()
        self.nazad.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyWidget()
    ex.show()
    sys.exit(app.exec())

我的github https://github.com/iMAGA07/yandexProj

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-30 23:25:00

您正在尝试将文本设置为您创建的新QPlainTextEdit,但实际上您应该将其指向您在gui中使用的文本:

代码语言:javascript
复制
def opening_run(self):
    # ...
        else:
            self.path = path
            # change this
            # self.editor.setPlainText(text)
            # to this
            self.plainTextEdit.setPlainText(text)

self.plainTextEdit是您在designer中创建的对象(对象名称列在对象检查器树中)。显然,这也意味着您一开始就不需要创建self.editor

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59114216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档