Lỗi không biên dịch gui qt

em thử tạo một gui bằng qt nhưng ko biết tại sao nó lại bị ở dòng 5 mong mọi người chỉ cách giúp
main.cpp:

#include "main.h"
main::main(QWidget* parent)
    : QWidget(parent)
{
    ui.setupUi(this);
}

main::~main()
{}
void main::on_red_clicked()
{
    close();
}

main.h:

#pragma once

#include <QtWidgets/QWidget>
#include <ui_main.h>
class main : public QWidget
{
	Q_OBJECT

public:
	main(QWidget* parent = nullptr);
	~main();
private slots:
	void on_red_clicked();
	void on_yellow_clicked();
	void on_green_clicked();
private:
	Ui::MainWindow ui;
};

Nó “bị” gì, ở dòng 5 nào à cậu? :smile:

1 Like

dòng 5 của main.cpp mình quên :sweat_smile:

Dòng 5 của main.cpp “bị” cái gì?.
Cái chúng mình cần là thông báo lỗi chứ không phải cái “bị” của bạn.

2 Likes

Severity Code Description Project File Line Suppression State
Error (active) E0167 argument of type “main *” is incompatible with parameter of type “QMainWindow *” gui D:\code\gui\gui\Source.cpp 5

Severity Code Description Project File Line Suppression State
Error C2664 ‘void Ui_MainWindow::setupUi(QMainWindow *)’: cannot convert argument 1 from ‘main *’ to ‘QMainWindow *’ gui D:\code\gui\gui\Source.cpp 5

Hint

class main : public QWidget // ???

Tự trả lời phần còn lại nhé

1 Like

Hàm main : con là thật nó là giả.
Class main : con mới là thật, nó là giả.
Phật tổ IDE : #]^}*{**]¥~’…
image

3 Likes

em đã đổi tên class main sang guimain nhưng nó cũng ko đc

  1. Em show cái main.cpp
  2. Em cài QT Creator

main.cpp:

#include <QtWidgets/QApplication>
#include "guimain.h"

int main(int argc, char* argv[])
{
    QApplication a(argc, argv);
    guimain w;
    w.show();
    return a.exec();
}

và em cài qt creator rồi

Bạn hiểu sai hint rồi
thừa kế từ QMainWindow chứ không phải QWidget

1 Like

sau khi em chỉnh thừa kế sang QMainWindow và biên dịch thử, nó hiện ra một list lỗi như

Gui này em tự code hay dùng Design ?
Nếu cài và đang dùng QT thì đã cài C++ trong Visual Studio tương thích phiên bản QT chưa (nếu dùng msvc) hoặc đã cài kèm MinGW chưa (nếu dùng Mingw).
Vào Tools\Options\Kit để kiểm tra các trình biên dịch đã nhận chưa.
Nếu rồi thì chạy lại qmake.
Cuối cùng tạo thử một project khác.


Bởi cái code của file main.cpp và cả window a thấy nó không giống với code mặc định.

2 Likes

cái này em build dựa vào cái project qt widgets đã biên dịch đc

Nếu gui tự code thì chạy thử lại qmake.

1 Like

em chạy thử lại nhưng vẫn ko đc

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?