Хочу напрямую обращаться к элементам интерфейса, содержащихся в Ui MainWindow. Как это реализовать, не используя сигналы и слоты? Мне нужно передать ссылку на ui или вроде того.
Просто сделайте метод для доступа к ui
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow{
public:
Ui::MainWindow *ui() const{
return _ui;
}
private:
Ui::MainWindow *_ui;
};
Однако я бы все же посоветовал вам не обращаться к виджетам напрямую. Если вы решите изменить внешний вид MainWindow
или отказаться от _ui
, то вам придется вносить изменения во всей программе. Лучше будет сделать методы, которые будут манипулировать _ui
. Примерно так:
class MainWindow : public QMainWindow{
public:
void setAge(int age){
_ui->ageInput->setValue(age);
}
int age() const{
return _ui->ageInput->value();
}
void setName(const QString &name){
_ui->nameInput->setText(name);
}
QString name() const{
_ui->nameInput->text();
}
private:
Ui::MainWindow *_ui;
};
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеется список на multimap пара ключ-значениеВ списке присутствуют не уникальные значения
Необходимо программно понять, подключено ли какое-то устройство воспроизведения к аудиовыходуИспользуется linux (МСВС)
Каким способами можно выполнить преобразование из инта в строку?