NameError: name 'QMainWindow' is not defined (PyQt5)

InjunJoe

Новичок
Пользователь
Ноя 3, 2020
26
0
1
Москва
Народ help вот такой код: (все срисовано 1:1 с видеокурса - но выдает такую ошибку?)
NameError: name 'QMainWindow' is not defined

import sys
from PyQt5 import QtGui, QtCore, QtWidgets
from des import *


class GUI(QtWidgets, QMainWindow):
def __init__(self, parent=None):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)

if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
mywin = GUI()
mywin.show()
sys.exit(app.exec_())
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Код вставляйте с помощью ... -> код -> Python.
Замените строку:
Python:
class GUI(QtWidgets, QMainWindow):
на такую:
Python:
class GUI(QtWidgets.QMainWindow):
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 599
464
83
Python:
def line_edit_vvod(self):
    V = self.ui.lineEdit.text()
 
Последнее редактирование:

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Почемуто цикл не работает?
Ну нужно писать много вопросов в одной теме.
Создавайте на каждый вопрос отдельную тему с заголовком отражающим суть проблемы.
read.readlines() возвращает список строк из файла - у вас там видимо 1 строка 100101001, поэтому в переменную RV записывается [100101001] и далее в цикле значение RV копируется в RV_Start.
 

InjunJoe

Новичок
Пользователь
Ноя 3, 2020
26
0
1
Москва
Теперь такое:
File "c:\Users\Joe\Desktop\Интерфейс_2\Interface_2.py", line 9, in __init__
self.ui = Ui_MainWindow()
NameError: name 'Ui_MainWindow' is not defined
 

InjunJoe

Новичок
Пользователь
Ноя 3, 2020
26
0
1
Москва
Расшарил основной файл (бывший .ui) все заработало! Благодарю!
 

InjunJoe

Новичок
Пользователь
Ноя 3, 2020
26
0
1
Москва
Проблема help): при вводе в lineEdit переная V печатает None а не то что вводится?

import sys
from PyQt5 import QtGui, QtCore, QtWidgets
from des import *
from var_1 import *
import time

R = []
V = []

class GUI(QtWidgets. QMainWindow):
def __init__(self, parent=None):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.setWindowTitle('моя программа')
# self.ui.lineEdit.setText('')
# !!! Меню Помощь !!! #
# self.ui.actionOpen_Помощь.triggered.connect(self.inf)
def inf(self):
print('text')
pass
# !!! Вкладка База Данных !!! #
#self.ui.lineEdit = QLineEdit(self)
self.ui.lineEdit.returnPressed.connect(self.line_edit_vvod)
self.ui.pushButton.clicked.connect(self.open_file)
self.ui.pushButton_40.clicked.connect(self.start)
self.ui.pushButton_41.clicked.connect(self.terminal)
self.ui.pushButton_42.clicked.connect(self.save)
def line_edit_vvod(self):
global V
V = self.ui.lineEdit.setText('')
print(V)
def open_file(self):
file_path = QtWidgets.QFileDialog.getOpenFileName(
self, 'beaders', 'filename', 'Text *.txt')
read = open(file_path[0], 'r', encoding='cp1251')
global R
R = read.readlines()
read.close()
print(R)
# в список в int [] через цикл
# где вывод - терминал
# print(R)
def start(self):
pass
# self.ui.pushButton.setDisabled(True)
# time.sleep(5)
def terminal(self):
pass
def save(self):
file_path = QtWidgets.QFileDialog.getSaveFileName(
self, 'Сохранитиь Данные', 'file', 'Text *.txt')
with open(file_path[0], 'w') as file:
file.write('переменная со ввода или загрузки файла')

if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
mywin = GUI()
mywin.show()
sys.exit(app.exec_())
 

InjunJoe

Новичок
Пользователь
Ноя 3, 2020
26
0
1
Москва
или вот:
File "c:\Users\Joe\Desktop\╚эЄхЁЇхщё_2\Interface_2.py", line 38, in line_edit_vvod
V = self.ui.lineEdit.setText()
TypeError: setText(self, str): not enough arguments
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 599
464
83
Код вставляйте с помощью ... -> код -> Python.
 

InjunJoe

Новичок
Пользователь
Ноя 3, 2020
26
0
1
Москва
Не очень понял, как?
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 599
464
83
где пишите сообщение, чуть выше в панели инструментов есть три точки->код и туда вставляйте фрагмент, соблюдая отступы в питоне они важны
 

InjunJoe

Новичок
Пользователь
Ноя 3, 2020
26
0
1
Москва
Код:
import sys
from PyQt5 import QtGui, QtCore, QtWidgets
from des import *
from var_1 import *
import time


R = []
V = []


class GUI(QtWidgets. QMainWindow):
    def __init__(self, parent=None):
        super().__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.setWindowTitle('моя программа')
        # self.ui.lineEdit.setText('')

        # !!! Меню Помощь !!! #

        # self.ui.actionOpen_Помощь.triggered.connect(self.inf)

        def inf(self):
            print('text')
            pass

        # !!! Вкладка База Данных !!! #
        #self.ui.lineEdit = QLineEdit(self)
        self.ui.lineEdit.returnPressed.connect(self.line_edit_vvod)
        self.ui.pushButton.clicked.connect(self.open_file)
        self.ui.pushButton_40.clicked.connect(self.start)
        self.ui.pushButton_41.clicked.connect(self.terminal)
        self.ui.pushButton_42.clicked.connect(self.save)

    def line_edit_vvod(self):
        global V
        V = self.ui.lineEdit.setText()
        print(V)

    def open_file(self):
        file_path = QtWidgets.QFileDialog.getOpenFileName(
            self, 'beaders', 'filename', 'Text *.txt')
        read = open(file_path[0], 'r', encoding='cp1251')
        global R
        R = read.readlines()
        read.close()
        print(R)

        # в список в int [] через цикл
        # где вывод - терминал
        # print(R)

    def start(self):
        pass
        # self.ui.pushButton.setDisabled(True)
        # time.sleep(5)

    def terminal(self):
        pass

    def save(self):
        file_path = QtWidgets.QFileDialog.getSaveFileName(
            self, 'Сохранитиь Данные', 'file', 'Text *.txt')
        with open(file_path[0], 'w') as file:
            file.write('переменная со ввода или загрузки файла')


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    mywin = GUI()
    mywin.show()
    sys.exit(app.exec_())
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 599
464
83
Python:
self.ui.lineEdit.returnPressed.connect(self.line_edit_vvod)
тут подключен слот line_edit_vvod
Python:
def line_edit_vvod(self):
    global V
    V = self.ui.lineEdit.setText()
    print(V)
но он ничего не делает
в скобочки напишите строку, он вставит ее в lineEdit
 

InjunJoe

Новичок
Пользователь
Ноя 3, 2020
26
0
1
Москва
Нужно что бы с lineEdit (из поля ввода) то что введено попало в переменную V
 

InjunJoe

Новичок
Пользователь
Ноя 3, 2020
26
0
1
Москва
Почемуто цикл не работает? т,е он должен обнулить RV - обнуляет, потом читает из открытого файла такие значения(100101001) и на цикле переписать в виде [1,0,0,1,0,1,0,0,1] - а выводит как в файле запиcано [100101001] и len(RV) = 1 ?

Код:
def open_file(self):
        file_path = QtWidgets.QFileDialog.getOpenFileName(
            self, 'beaders', 'filename', 'Text *.txt')
        read = open(file_path[0], 'r', encoding='cp1251')
        global RV, RV_Start
        RV = []
        print(len(RV))
        RV = read.readlines()
        read.close()
        print(len(RV))
        for i in range(len(RV)):
            RV_Start.append(RV[i])
        print(RV_Start)
 

Форум IT Специалистов