Поиск:

Ответ в темуСоздание новой темы Создание опроса
> недоступность виджетов формы 
V
    Опции темы
kuvshinka
Дата 22.10.2011, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



есть форма, ее хедер, автоматически сгенерированный в дизайнере, следующий:
Код

class Ui_Form2
{
public:
    QVBoxLayout *verticalLayout;
    QTableWidget *Table1;
    QHBoxLayout *horizontalLayout;
    QLabel *label;
    QPushButton *TestButton;
    QLabel *label_3;
    QHBoxLayout *horizontalLayout_2;
    QLabel *label_2;
    QSpacerItem *horizontalSpacer;

    void setupUi(QWidget *Form2)
     ...        
    TestButton = new QPushButton(Form2);
    TestButton->setObjectName(QString::fromUtf8("TestButton"));
    verticalLayout->addWidget(TestButton);
    ...

пытаюсь использовать какой-либо виджет данной формы в mainwindow:
Код

 Form2 *_oForm2 = new Form2();
 _oForm2->TestButton->setText("hello");

выдается ошибка(и)
C:/projeckt1/ui_Form2.h:39: error: 'QPushButton* Ui_Form2::TestButton' is inaccessible - выделяется строка в хедере формы на создании кнопки TestButton
C:/projeckt1/Test/MainWindow.cpp:26: error: within this context - выделяестя строка с заданием текста для TestButton...
такая ошибка выдается при попытке работы с любым виджетом формы Form2....
подскажите пож-та в чем тут дело (вроде все виджеты у Form2 - public) и как это исправить...

Это сообщение отредактировал(а) kuvshinka - 22.10.2011, 21:55
PM MAIL   Вверх
mes
Дата 22.10.2011, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 7
Всего: 250



где показано отношение Ui_Form2 к Form2 ?
скорей всего приватно наследовались, замените на публичное.. 



--------------------
PM MAIL WWW   Вверх
kuvshinka
Дата 22.10.2011, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



да вроде нормально все:
хедер формы:
Код

#include "ui_Form2.h"

class Form2 : public QWidget, Ui::Form2
{
Q_OBJECT
public:
    Form2(QWidget *parent = 0);
....
}

cpp
Код

#include "Form2.h"
#include <QtGui>
#include "ui_Form2.h"

Form2::Form2(QWidget *parent) :QWidget(parent)
{
  setupUi(this);
}
...

PM MAIL   Вверх
mes
Дата 23.10.2011, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 7
Всего: 250



Цитата(kuvshinka @  22.10.2011,  21:01 Найти цитируемый пост)
да вроде нормально все:
хедер формы:
Код

class Form2 : public QWidget, Ui::Form2


как и ожидалось
Цитата(mes @  22.10.2011,  20:55 Найти цитируемый пост)
скорей всего приватно наследовались, замените на публичное.. 


Добавлено через 2 минуты и 33 секунды
публично наследован только QWidget, поэтому доступ к членам Ui::Form2 возможен только из Form2::метода

Добавлено через 3 минуты и 51 секунду
то что наследование приватноеэто идеологически правильно.. проблема в том что Вы пытаесь снаружи получить то, к чему доступ только изнутри..


--------------------
PM MAIL WWW   Вверх
RazrFalcon
Дата 23.10.2011, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 29.7.2009

Репутация: 1
Всего: 1



Код

class Form2 : public QWidget, private Ui::Form2


#include "ui_Form2.h" - это в cpp не нужно, только в хедере
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0974 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.