Russian Qt Forum
Ноябрь 22, 2024, 07:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: не роботают слоты(menu->addAction();)  (Прочитано 4804 раз)
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« : Январь 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 Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #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 Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #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 Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #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 Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #4 : Январь 21, 2023, 12:52 »

я уже не стал смотреть твой обновленный архив, сразу выкладываю свою исправленную версию. можешь сам сравнить файлы и посмотреть отличия.

спасибо
 я сделал как вы сказалии всё за работало но когда открываю txt файл на руском получается билеберда
« Последнее редактирование: Январь 21, 2023, 12:56 от Noize_programmer » Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #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 Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #6 : Январь 21, 2023, 13:15 »

И подскажите пожалуйста как реализовать кнопку Help в меню?  Непонимающий Непонимающий Непонимающий Непонимающий Непонимающий
Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #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 Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #8 : Январь 22, 2023, 10:24 »

повесь 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 Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #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 Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #10 : Январь 23, 2023, 12:09 »

этого файла нет в архиве. все еще непонятно какое поведение ты хочешь. напиши пошагово: куда надо нажимать, что должно открыться и т.д.

спасибо за ответы но я уже сделал с помощью 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]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.148 секунд. Запросов: 23.