Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
4 / 4 / 0
Регистрация: 06.05.2016
Сообщений: 71

Потеря класса при переименовывании связки filename.h & ui_filename.ui в newFilename.h & ui_newFilename.ui

07.01.2019, 23:15. Показов 1034. Ответов 6

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Возникла проблема, которую я даже озаглавить нормально не могу. Поэтому опишу ситуацию.
У меня есть Qt Application проект, дизайн которого был создан в qt design (т.е. где перебрасывать виджеты на окно). После появилась необходимость слить этот проект с другим. Т.к. с subdirs у меня ничего не получилось, решил из старого всё перебросить в .pri и добавить его в новый. Дабы избежать конфликт имён, MainWindow старого проекта переименовал. И тут начались проблемы с ui файлом.

Мои действия:
  1. В pbxboardswindow.h namespace Ui {class MainWindow;} MainWindow стал PbxBoardsWindow
  2. Ui::MainWindow *ui стал Ui::PbxBoardsWindow *ui;
  3. В файле "ui_mainwindow.h" сделал следующее:
    • #ifndef UI_MAINWINDOW_H заменил на #ifndef UI_PBXBOARDSWINDOW_H (с #define тоже самое)
    • class Ui_MainWindow заменил на class Ui_PbxBoardsWindow
    • Внутри класса Ui_PbxBoardsWindow везде, где было MainWindow заменил на PbxBoardsWindow
    • Все MainWindow здесь заменил на PbxBoardsWindow
      C++ (Qt)
      1
      2
      3
      
          namespace Ui {
              class MainWindow: public Ui_MainWindow {};
              } // namespace Ui
    • #endif // UI_MAINWINDOW_H заменил на #endif // UI_PBXBOARDSWINDOW_H (подстраховки ради)
  4. В pbxboardswindow.cpp вместо #include "ui_mainwindow.h" прописал #include "ui_pbxboardswindow.h"
  5. Все MainWindow заменил на PbxBoardsUtils
  6. В дизайнере имя объекта окна заменил на PbxsBoardsWindow

Ошибок компиляции нет, но теперь класс PbxBoardsWindow не виден (в другом файле, где пытаюсь показать это окно). Вернее, он виден, если заинклудить ui_pbxboardswindow.h, но функции класса (объявленные в pbxboardswindow.h) недоступны (даже если его прописать в #include).
Сам mainwindow.ui тоже переименовал в pbxboardswindow.ui.
При обращении Ui::PbxBoardsWindow результат не меняется.

Сам вопрос: как мне это исправить? От руки прописывать виджеты и создать коннекты оставил как запасной вариант. Хочется всё-таки исправить эту ситуацию средствами qt.

P.S. прошу прощения, если плохо донёс мысль и/или ужасно/не по назначению использовал стили оформления (в плане цветов, списков и т.д.).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.01.2019, 23:15
Ответы с готовыми решениями:

query='SELECT * FROM resume WHERE ' & ''' & RecSet('place')& ''' & '=' & '''& s_loc &''' & - что не так?
упростил для краткости запрос. в чем ошибка? RecSet - это коннекшн. query='SELECT * FROM resume WHERE ' & ''' &...

error '80020009' Îøèáêà. /lalala/profile.asp, line 28
При простейшем и сто раз работавшем скрипте, вылетает ошибка! след. содержания error '80020009' ...

Помогите найти драйвера для pci\ven_8086&DEV_266E&SUBSYS_A002145&REV_05\3&13C0B0C5&0&F2
pci\ven_8086&DEV_266E&SUBSYS_A002145&REV_05\3&13C0B0C5&0&F2 Мультимедиа аудиоконтроллер помогите плз найти...

6
134 / 26 / 8
Регистрация: 09.02.2017
Сообщений: 175
08.01.2019, 00:13
В *.pro-файле проекта, в котором теперь используются переименованные файлы вы прописали расположение этих самых переименованных файлов?

Добавлено через 1 минуту
В редакторе форм вы переименовали ваш виджет?
1
4 / 4 / 0
Регистрация: 06.05.2016
Сообщений: 71
08.01.2019, 00:50  [ТС]
Цитата Сообщение от FRIEND_ Посмотреть сообщение
вы прописали расположение этих самых переименованных файлов
Переименовал. Только они находятся в *.pri файле (думаю, что это не играет роли). А этот pri файл подключён в pro

Содержимое .pri файл
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
INCLUDEPATH += $$PWD
 
SOURCES += \
    $$PWD/pbxboardswindow.cpp
 
HEADERS += \
    $$PWD/pbxboardswindow.h
 
FORMS += \
    $$PWD/pbxboardswindow.ui
Содержимое .pro файл (кусок, где подключается .pri)
C++ (Qt)
1
include(pbxequipdesigner/pbxequipdesigner.pri)
Цитата Сообщение от FRIEND_ Посмотреть сообщение
В редакторе форм вы переименовали ваш виджет?
Вы ведь говорите про колонку "Object"? Если так, то переименовал. Было MainWindow, теперь PbxBoardsWindow.
0
134 / 26 / 8
Регистрация: 09.02.2017
Сообщений: 175
08.01.2019, 00:55
Колонка на изображении.
Ваши переименованные файлы отображаются в обозревателе файлов проекта?
Миниатюры
Потеря класса при переименовывании связки filename.h & ui_filename.ui в newFilename.h & ui_newFilename.ui  
1
4 / 4 / 0
Регистрация: 06.05.2016
Сообщений: 71
08.01.2019, 01:35  [ТС]
Да, в этой колонке значение стоит PbxBoardsWindow
Цитата Сообщение от FRIEND_ Посмотреть сообщение
Ваши переименованные файлы отображаются в обозревателе файлов проекта?
Отображаются
Могу прикрепить скриншоты дизайнера и обозревателя проекта

Добавлено через 9 минут
Господи, я полнейший дурак ))
Ошибка заключалась в переименованом файле (старом mainwindow.h, текущем pbxboardswindow.h). Я в нём изменил абсолютно всё, кроме этих двух строчек:
C++
1
2
#ifndef PBXBOARDSWINDOW_H
#define PBXBOARDSWINDOW_H
Если память мне не изменяет, то они помогают избавить проект от перевключения (не помню точное название, явно не это) файлов с одинаковым названием.
Так вот, файл-то я переименовал, а вот переписать эти директивы забыл. В проекте присутствует другой файл mainwindow.h (этот файл появился в новом проекте, в который я закинул .pri - шный). Именно поэтому я не мог обратиться к переименованному классу даже при include, ведь он просто игнорировался.
P.S. в связи с слабыми познаниями директивы ifndef, моё описание принципа работы может быть не правильным. Советую вам самим про это почитать.
0
134 / 26 / 8
Регистрация: 09.02.2017
Сообщений: 175
08.01.2019, 01:42
Спасибо, я знаю)

Добавлено через 10 секунд
Рад, что нашли ошибку)
0
4 / 4 / 0
Регистрация: 06.05.2016
Сообщений: 71
08.01.2019, 03:12  [ТС]
Цитата Сообщение от Салага2015 Посмотреть сообщение
#ifndef PBXBOARDSWINDOW_H #define PBXBOARDSWINDOW_H
Ой, скопировал после изменений. Изначально там было
C++ (Qt)
1
2
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
После замены на PBXBOARDSWINDOWS_H всё заработало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.01.2019, 03:12
Помогаю со студенческими работами здесь

немогу найти драйвера на PCI\VEN_1039&DEV_7012&SUBSYS_810D1043&REV_A0\3&61AAA01&0&17
Мультимедиа аудиоконтроллер PCI\VEN_1039&DEV_7012&SUBSYS_810D1043&REV_A0\3&61AAA01&0&17

Мультимедиа контролер PCI\VEN_14F1&DEV_8800&SUBSYS_EA3D14F1&REV_05\4&25700A26&0&3020
Помогите пожалуйста найти драйвер на мультимедиа видеоконтролер ...

Нужен драйвера, код PCI\VEN_1039&DEV_7012&SUBSYS_0C98105B&REV_A0\3&B1BFB68&0&17
всем привет !! уменя нет звука нужен драйвер код PCI\VEN_1039&DEV_7012&SUBSYS_0C98105B&REV_A0\3&B1BFB68&0&17 скачал прогу их много ...

Драйвера на PCI\VEN_10B7&DEV_1700&SUBSYS_80EB1043&REV_12\4&2E98101C&0&28 F0
помогите плиз - вот ID: PCI\VEN_10B7&DEV_1700&SUBSYS_80EB1043&REV_12\4&2E98101C&0&28F0 Заранее...

Кто встречался с таким, подскажите - (#206;áúåêò)
Если на asp-странице происходит ошибка, то сервер выдает сообщение вот примерно в таком виде: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru