Russian Qt Forum

Qt => Вопросы новичков => Тема начата: МП© от Март 06, 2012, 17:16



Название: Как правильно передать значение?
Отправлено: МП© от Март 06, 2012, 17:16
Как правильно передать значение шрифта от одного лэйбла другому?
Если передаю аналогичным образом текст, то получается, а шрифт - нет.

Код
C++ (Qt)
файл.h
public slots:
   void mySlot();
   void on_pushButton_clicked();
 
signals:
   void moySignal(QFont);
 
private:
   Ui::MainWindow *ui;
    QFont m_nValue;
 
файл.cpp
 
MainWindow::MainWindow(QWidget *parent) :
   QMainWindow(parent),
   ui(new Ui::MainWindow)
{
   ui->setupUi(this);
   m_nValue(QFont ???);
   readSettings();
   QObject::connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(mySlot()));
   QObject::connect(this,SIGNAL(moySignal(QFont)),ui->label,SLOT(setFont()));
}
 
void MainWindow::mySlot()
{
   emit moySignal(m_nValue);
 
}
 


Название: Re: Как правильно передать значение?
Отправлено: mutineer от Март 06, 2012, 17:18
у сигнала есть параметр, а вот у слота не наблюдается. куда должен попадать m_nValue? он просто теряется

Да и setFont не слот


Название: Re: Как правильно передать значение?
Отправлено: МП© от Март 06, 2012, 17:32
 исправил
Код
C++ (Qt)
QObject::connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(mySlot(QFont)));
  QObject::connect(this,SIGNAL(moySignal(QFont)),ui->label,SLOT(myFont(QFont)));

у лэйбла нет стандартного слота,

если так создам?
Код
C++ (Qt)
void MainWindow::myFont()
{
ui->label->setFont(m_nValue)
}

и изначально как задать?
m_nValue(QFont ???);


Название: Re: Как правильно передать значение?
Отправлено: mutineer от Март 06, 2012, 17:36
Код
C++ (Qt)
QObject::connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(mySlot()));
...
void MainWindow::mySlot()
{
   ui->label->setFont(m_nValue)
}

что значит "как задать?" ?


Название: Re: Как правильно передать значение?
Отправлено: МП© от Март 06, 2012, 17:41
что значит "как задать?" ?

Код
C++ (Qt)
m_nValue(QFont);
 

Если просто QFont, то ругается, и как в нем определить значение шрифта лэйбла1, чтобы передать лэйблу2?


Название: Re: Как правильно передать значение?
Отправлено: mutineer от Март 06, 2012, 17:43
m_nValue = ui->label1->font()


Название: Re: Как правильно передать значение?
Отправлено: МП© от Март 06, 2012, 17:54
Все работает, спасибо большое ;)