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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: взаимодейстиве виджетов на разных формах  (Прочитано 2749 раз)
noname.pl
Гость
« : Декабрь 31, 2006, 03:55 »

есть программа на qt, которая состоит всего из одной формы QmainWindow типа. создаю мастером в студии форму QWidget-типа. размещаю на ней pushButton. пространство имен одно и то же Ui; как мне обратиться в методах виджетов главной формы к виджетам второй формы? банальный пример для исчезноваения кнопочки кто может привести? все что у меня не получается - это увидеть из одной формы другую. все функции, что в них отдельно работают - делают это корректно. кто подскажет? в assistent не посылать, я там не нашел ответ не этот вопрос.

добавлено спустя 4 часа 26 минут:

 разобрался с проблемой не без помощи добрых людей. суть решения: создаю окошко 2е только при определенных действиях с первым. потом динамически выделяю память, экземпляр создаю спомощью new, указатель буду хранить тоже где-то ... надо придумать где.
Записан
goer
Гость
« Ответ #1 : Декабрь 31, 2006, 13:55 »

Как вариант:

Класс вторичной формы.

Код:

#include <QPushButton>

class MyForm:
public QWidget
{
Q_OBJECT
public:
MyForm(QObject * parent = 0);
public slots:
void HideButton();
private:
QPushButton * button;
};


MyForm::MyForm(QObject * parent):
QWidget(parent)
{
QPushButton * button = new QPushButton(this);
}

void MyForm::HideButton()
{
button->setVisible(false);
}




Класс главного окна.

Код:

#include <QMainWindow>

class MainWindow:
public QMainWindow
{
Q_OBJECT
public:
MainWindow();
};


MainWindow::MainWindow()
{
QPushButton * button = new QPushButton(this);
MyForm * myForm = new MyForm(this);
connect(button, SIGNAL(clicked()), myForm, SLOT(HideButton()));
}

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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