• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed QT5 - nie wyświetlają się widgety

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
241 wizyt
pytanie zadane 17 lipca 2018 w C i C++ przez niezalogowany
zamknięte 18 lipca 2018

Chce w QT stworzyć przycisk niestety wyświetla mi się puste okno. Przy dodawaniu elementów przez QT designer działa wszystko ok. Może ktoś spojrzeć na ten kod:

 

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	QMainWindow okno;
	okno.show();
	return a.exec();
}
#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
}

MainWindow::~MainWindow()
{
	przycisk = new QPushButton("TAK");
	przycisk->setGeometry(10,10,200,200);
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QPushButton>
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
    QMainWindow *okno;
    QPushButton *przycisk;


};

#endif // MAINWINDOW_H
######################################################################
# Automatically generated by qmake (3.0) wt. lip 17 17:17:05 2018
######################################################################

QT += widgets
QT += core
QT += gui
TEMPLATE = app
TARGET = przycisk
INCLUDEPATH += .

# Input
HEADERS += mainwindow.h
SOURCES += main.cpp mainwindow.cpp

 

komentarz zamknięcia: Problem rozwiązany

2 odpowiedzi

0 głosów
odpowiedź 17 lipca 2018 przez Bondrusiek Maniak (61,440 p.)
wybrane 18 lipca 2018
 
Najlepsza

Witam,

dopatrzyłem się w Twoim kodzie kilka błędów. Po pierwsze pisze się Qt a nie QT to częsty błąd i myślę że warto go unikać gdyż świadczy to o poziomie wiedzy.

W pliku mainwindow.h tworzysz   QMainWindow *okno; To jest niepotrzebne(w tym projekcie). Zauważ że Twoja klasa dziedziczy po QMainWindow co w uproszczenie znaczy że tworzysz specjalną klasę. Nie ma sensu tworzyć jeszcze wskaznika na QMainWindow.

W pliku mainwinow.cpp dodaj rodzica dla przycisku w konstruktorze a nie w destruktorze

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
przycisk = new QPushButton("TAK", this);
przycisk->setGeometry(10, 10, 200, 200);
}
MainWindow::~MainWindow()
{
}

W pliku main.cpp dodaj Twoją właściwą klasę

    MainWindow okno; //nie QMainWindow okno;
    okno.show();
    return a.exec();

 

0 głosów
odpowiedź 17 lipca 2018 przez kuba1176 Początkujący (340 p.)
Tworzysz przycisk w destruktorze
komentarz 17 lipca 2018 przez niezalogowany
A jak powinno być?

Podobne pytania

0 głosów
1 odpowiedź 167 wizyt
pytanie zadane 7 stycznia 2018 w C i C++ przez amb00 Bywalec (2,000 p.)
0 głosów
0 odpowiedzi 168 wizyt
pytanie zadane 9 czerwca 2016 w C i C++ przez aspoka Mądrala (5,290 p.)
0 głosów
1 odpowiedź 181 wizyt
pytanie zadane 2 maja 2017 w C i C++ przez Sidzej Użytkownik (850 p.)

93,188 zapytań

142,204 odpowiedzi

322,028 komentarzy

62,515 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2581p. - dia-Chann
  2. 2537p. - Łukasz Piwowar
  3. 2528p. - Łukasz Eckert
  4. 2514p. - CC PL
  5. 2476p. - Tomasz Bielak
  6. 2445p. - Łukasz Siedlecki
  7. 2443p. - rucin93
  8. 2418p. - Michal Drewniak
  9. 2373p. - Marcin Putra
  10. 2367p. - Adrian Wieprzkowicz
  11. 2210p. - Mikbac
  12. 2156p. - Anonim 3619784
  13. 1733p. - rafalszastok
  14. 1701p. - Michał Telesz
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...