Russian Qt Forum
Март 29, 2024, 14:24
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
не роботают слоты(menu->addAction();)
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: не роботают слоты(menu->addAction();) (Прочитано 4040 раз)
Noize_programmer
Чайник
Offline
Сообщений: 91
работает не трогай
не роботают слоты(menu->addAction();)
«
:
Январь 20, 2023, 17:59 »
решено
как вы поняли из названия у меня не работают слоты в menu->addAction();
сам проект работает но не работает ни один слот кроме SChangeWindowTitle(const QString&)
помогите пожалйста
(весь проект в .zip)
main_notepad.h:
Код:
QMenu* pmuFile = new QMenu("&File");
QMenu* pmuHelp = new QMenu("&Help");
notepad* pnotepad = new notepad;
pmuFile->addAction("&Open",
pnotepad,
SLOT(SLoad()),
QKeySequence("CTRL+O")
);
pmuFile->addAction("&Save",
pnotepad,
SLOT(SSave()),
QKeySequence("CTRL+S")
);
pmuFile->addAction("&Save As",
pnotepad,
SLOT(SLoad()),
QKeySequence("CTRL+SHIFT+S")
);
pmuFile->addSeparator();
pmuFile->addAction("&Quit",
qApp,
SLOT(Quit()),
QKeySequence("CTRL+Q")
);
pmuFile->addAction("&About",
this,
SLOT(SAbout()),
Qt::Key_F1
);
«
Последнее редактирование: Январь 24, 2023, 10:58 от Noize_programmer
»
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: не роботают слоты(menu->addAction();)
«
Ответ #1 :
Январь 20, 2023, 18:42 »
на будущее:
- папку build прикладывать не надо
- файлы с расширением user тоже
- проще выкладывать код на гитхаб, чем в архиве — тогда можно его сразу прочитать в браузере
почему приложенный код не содержит исправлений из другой темы? это банальное неуважение. более того, даже после внесения тех исправлений он не компилируется. также твои слоты подключаются в классе main_notepad, но в main ты почему-то создаешь объект класса notepad.
перенос кода конструктора main_notepad в cpp файл по волшебству все исправил, даже не особо понимаю почему не работало когда он был в заголовочном файле. а для сигнала changeWindowTitle правильно писать SIGNAL(changeWindowTitle(QString)) — надо указывать все параметры сигнала.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
Offline
Сообщений: 91
работает не трогай
Re: не роботают слоты(menu->addAction();)
«
Ответ #2 :
Январь 21, 2023, 10:29 »
ой извените я вложил старый код
код с изменениями в .zip
Цитировать
также твои слоты подключаются в классе main_notepad, но в main ты почему-то создаешь объект класса notepad.
потому что я в main_notepad.h интерпретирую .h класа notepad_window и подключение слотов идёт в main_notepad.h
Цитировать
перенос кода конструктора main_notepad в cpp файл по волшебству все исправил
я попытался но выдало ошибку в которой говорится что коструктор is Defolt
kambala спасибо огромное за отзывчивость вы как-то да поможете каждый раз как я создал новую тему
«
Последнее редактирование: Январь 21, 2023, 11:11 от Noize_programmer
»
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: не роботают слоты(menu->addAction();)
«
Ответ #3 :
Январь 21, 2023, 12:17 »
я уже не стал смотреть твой обновленный архив, сразу выкладываю свою исправленную версию. можешь сам сравнить файлы и посмотреть отличия.
я тебе еще в SLoad() исправил чтение файла — должно быть QIODevice::ReadOnly вместо QIODevice::WriteOnly.
P.S. пиши реализацию методов в cpp файлах, а не в h, даже если в книге пишут в h (за исключением шаблонных функций/методов): лучше сразу приучаться к хорошему стилю. потом, когда освоишься с С++, узнаешь в каких случаях «допустимо» писать в h.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
Offline
Сообщений: 91
работает не трогай
Re: не роботают слоты(menu->addAction();)
«
Ответ #4 :
Январь 21, 2023, 12:52 »
Цитата: kambala от Январь 21, 2023, 12:17
я уже не стал смотреть твой обновленный архив, сразу выкладываю свою исправленную версию. можешь сам сравнить файлы и посмотреть отличия.
спасибо
я сделал как вы сказалии всё за работало но когда открываю txt файл на руском получается билеберда
«
Последнее редактирование: Январь 21, 2023, 12:56 от Noize_programmer
»
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: не роботают слоты(menu->addAction();)
«
Ответ #5 :
Январь 21, 2023, 13:01 »
в местах, где ты работаешь с объектом QTextStream, надо указать необходимую кодировку до начала чтения/записи, например:
Код
C++ (Qt)
stream.
setCodec
(
"UTF-8"
)
;
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
Offline
Сообщений: 91
работает не трогай
Re: не роботают слоты(menu->addAction();)
«
Ответ #6 :
Январь 21, 2023, 13:15 »
И подскажите пожалуйста как реализовать кнопку Help в меню?
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: не роботают слоты(menu->addAction();)
«
Ответ #7 :
Январь 21, 2023, 14:55 »
повесь About экшн на pmuHelp вместо pmuFile, если я правильно понял твое желание
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
Offline
Сообщений: 91
работает не трогай
Re: не роботают слоты(menu->addAction();)
«
Ответ #8 :
Январь 22, 2023, 10:24 »
Цитата: kambala от Январь 21, 2023, 14:55
повесь About экшн на pmuHelp вместо pmuFile, если я правильно понял твое желание
спасибо за ответ но нет мне нужна реализация class HelpBrowser
я её уже делал но тот проект я "утратил"(проект был ны windows 10 а сечас у меня windows 11)
как реализировать я подзабыл
«
Последнее редактирование: Январь 22, 2023, 10:28 от Noize_programmer
»
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: не роботают слоты(menu->addAction();)
«
Ответ #9 :
Январь 22, 2023, 11:00 »
этого файла нет в архиве. все еще непонятно какое поведение ты хочешь. напиши пошагово: куда надо нажимать, что должно открыться и т.д.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
Offline
Сообщений: 91
работает не трогай
Re: не роботают слоты(menu->addAction();)
«
Ответ #10 :
Январь 23, 2023, 12:09 »
Цитата: kambala от Январь 22, 2023, 11:00
этого файла нет в архиве. все еще непонятно какое поведение ты хочешь. напиши пошагово: куда надо нажимать, что должно открыться и т.д.
спасибо за ответы но я уже сделал с помощью QMessageBox::about(...) и готовая програма у меня на GitHub
Git:
https://github.com/SpeechKingV
название costumNotePad
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...