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

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

Страниц: 1 2 3 [4]   Вниз
  Печать  
Автор Тема: Сигналы из меню?  (Прочитано 19824 раз)
V1KT0P
Гость
« Ответ #45 : Апрель 12, 2012, 18:58 »

А как мне в функцию передать pole ?  
QMdiArea *pole = new QMdiArea;  -> открыто в MainWindow !

Код:
void MainWindow::nahog()
{
      QMdiSubWindow *subWindow = pole->addSubWindow(new QWidget);
      subWindow->show();
}
Сделай pole членом класса MainWindow, и передавать не надо =).
Записан
Javaca
Гость
« Ответ #46 : Апрель 12, 2012, 19:40 »

Сделай pole членом класса MainWindow, и передавать не надо =).

Тоесть?
Записан
V1KT0P
Гость
« Ответ #47 : Апрель 12, 2012, 19:51 »

Сделай pole членом класса MainWindow, и передавать не надо =).

Тоесть?
Код
C++ (Qt)
class MainWindow : public QMainWindow
{
   Q_OBJECT
 
public:
   explicit MainWindow(QWidget *parent = 0);
   ~MainWindow();
 
private:
   QMdiArea *pole;
   Ui::MainWindow *ui;
};
Записан
Javaca
Гость
« Ответ #48 : Апрель 12, 2012, 20:25 »

Код:
private:
    QMdiArea *pole;

Благодарю! Помогло.  Улыбающийся
Записан
iroln
Гость
« Ответ #49 : Апрель 13, 2012, 08:27 »

Javaca, твоё счастье уже близко. Улыбающийся
http://habrahabr.ru/post/141983/
Записан
Javaca
Гость
« Ответ #50 : Апрель 13, 2012, 13:23 »

Javaca, твоё счастье уже близко. Улыбающийся
http://habrahabr.ru/post/141983/

Отличная новость. Будем ждать выход оф.версии  Смеющийся
Код:
static void someFunction() 
{
    qDebug() << "pressed";
}

QObject::connect(button, &QPushButton::clicked, someFunction);

-------------------------------

Еще у меня возник вопрос. Скажите покажалуйста, как мне убрать у окна кнопку "Maximize" и выпадающее меню у значка Qt (Restore, Move, Size и т.д.)? Окно естественно MDIChild.

я разобрался  уже, может кому сгодиться (пока без кнопки Close):
Код:
sp_sostoy->setWindowFlags(Qt::SubWindow | Qt::WindowMinimizeButtonHint | Qt::WindowTitleHint);
« Последнее редактирование: Апрель 13, 2012, 13:37 от Javaca » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #51 : Апрель 13, 2012, 14:02 »

Если уж прям такая необходимость соединять сигналы с не мембер функциями, можете воспользоваться сторонними либами, например boost::signals, libsigc++ (которая, кстати используется в gtkmm) или libssc

В последнем случае это будет выглядеть так:
Код
C++ (Qt)
class SomeClass
{
//...
   ssc::signal<void> clicked;
slots:
   void buttonClick() { clicked(); }
 
   QPushButton *m_btn;
};
 
// Далее в конструкторе класса SomeClass:
SomeClass::SomeClass()
{
   m_btn = new QPushButton("click me!");
   //...
   connect(m_btn, SIGNAL(clicked()), this, SLOT(buttonClick()));
   clicked.connect(someFunction);
}
 

И будет вам счастье)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Страниц: 1 2 3 [4]   Вверх
  Печать  
 
Перейти в:  


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