Russian Qt Forum

Qt => Общие вопросы => Тема начата: codemonkey от Октябрь 23, 2013, 15:10



Название: setEnabled(false) vs setDisabled(true)
Отправлено: codemonkey от Октябрь 23, 2013, 15:10
В большинстве компонентов Qt предусмотрено 2 способа.
Как вы выбираете какой из них использовать?


Название: Re: setEnabled(false) vs setDisabled(true)
Отправлено: Alex Custov от Октябрь 23, 2013, 15:26
У нас проходят внеочередные собрания по этому поводу.


Название: Re: setEnabled(false) vs setDisabled(true)
Отправлено: kambala от Октябрь 23, 2013, 15:48
предлагаю также обсудить setVisible() с show()/hide()


Название: Re: setEnabled(false) vs setDisabled(true)
Отправлено: codemonkey от Октябрь 23, 2013, 16:24
предлагаю также обсудить setVisible() с show()/hide()

Очевидно, если можно писать setVisible надо так и писать, потому что это одна строка

Код
C++ (Qt)
bool b;
//....................
setVisible(b);
 
//вместо двух
 
if(b)show();
else hide();


Название: Re: setEnabled(false) vs setDisabled(true)
Отправлено: kambala от Октябрь 23, 2013, 17:26
ого, ты не бот?..

ну вот виджеты почему-то принято показывать через show() а не через setVisible(true)


Название: Re: setEnabled(false) vs setDisabled(true)
Отправлено: codemonkey от Октябрь 24, 2013, 08:13
виджеты почему-то принято показывать через show()

Принято значит написано в каком-то документе.
Где написано что надо показывать через show() и нельзя показывать через setVisible?


Название: Re: setEnabled(false) vs setDisabled(true)
Отправлено: gil9red от Октябрь 24, 2013, 09:32
Зависит от того, что пишешь :)

Например, при создании окон, мне кажется, удобнее использовать show:
Код:
int main( int argc, char **argv )
{
    QApplication app( argc, argv );

    QWidget w;
    w.show(); // коротко и лаконично

    return app.exec();
}


При передачи булевых переменных, удобнее setVisible:
Код:
QCheckBox * cBoxVisibleWindow = new QCheckBox();
cBoxVisibleWindow->show();

QWidget * window = new QWidget();
window->setVisible ( cBoxVisibleWindow->isChecked() );

connect( cBoxVisibleWindow, SIGNAL( toggled( bool ) ),
         window, SLOT( setVisible( bool ) ) );


Название: Re: setEnabled(false) vs setDisabled(true)
Отправлено: kai666_73 от Октябрь 24, 2013, 10:47
А такой пример
Код:
connect(button, SYGNAL(toggled(bool)), yesWidget, SLOT(setEnabled(bool)));
connect(button, SYGNAL(toggled(bool)), notWidget, SLOT(setDisabled(bool)));
не подскажет в чем прелесть наличия обоих вариантов?


Название: Re: setEnabled(false) vs setDisabled(true)
Отправлено: kambala от Октябрь 24, 2013, 12:04
виджеты почему-то принято показывать через show()

Принято значит написано в каком-то документе.
Где написано что надо показывать через show() и нельзя показывать через setVisible?
ни в каком документе не написано, но в большинстве примерах используется именно show(). принято != обязательно.