打开Qt中的第二个窗口
Open second window in Qt
我正在尝试使用Qt Creator编译用C++编写的代码。我正在尝试创建第二个窗口,它将在单击主窗口中的菜单项后出现,该窗口应该有单独的.ui文件。但在编译过程中,我得到了错误:
/home/martin/Code/C++/Map_generator/map_generator/preferenceswindow.cpp:4: error: prototype for 'Ui::PreferencesWindow::PreferencesWindow(QWidget*)' does not match any in class 'Ui::PreferencesWindow'
Ui::PreferencesWindow::PreferencesWindow(QWidget *parent)
^
/home/bo/Code/C++/Map_generator/build-map_generator-Desktop-Debug/ui_preferenceswindow.h:88: error: candidates are: constexpr Ui::PreferencesWindow::PreferencesWindow(Ui::PreferencesWindow&&)
class PreferencesWindow: public Ui_PreferencesWindow {};
^
可能出了什么问题?
首选项window.h
#ifndef PREFERENCESWINDOW_H
#define PREFERENCESWINDOW_H
#include <QWidget>
namespace Ui
{
class PreferencesWindow;
}
class PreferencesWindow : public QWidget
{
Q_OBJECT
public:
explicit PreferencesWindow(QWidget *parent = 0);
signals:
//public Q_SLOTS:
private:
PreferencesWindow *uip;
};
#endif // PREFERENCESWINDOW_H
首选项window.cpp
#include "preferenceswindow.h"
#include "ui_preferenceswindow.h"
Ui::PreferencesWindow::PreferencesWindow(QWidget *parent)
:QWidget(parent), uip(new Ui::PreferencesWindow)
{
uip->setupUi(this);
}
首选项window.ui文件
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PreferencesWindow</class>
<widget class="QWidget" name="PreferencesWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>326</width>
<height>159</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>200</x>
<y>100</y>
<width>99</width>
<height>27</height>
</rect>
</property>
<property name="text">
<string>Save</string>
</property>
</widget>
<widget class="QSpinBox" name="spinBox">
<property name="geometry">
<rect>
<x>90</x>
<y>100</y>
<width>81</width>
<height>27</height>
</rect>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>200</number>
</property>
<property name="value">
<number>15</number>
</property>
</widget>
<widget class="QSpinBox" name="spinBox_2">
<property name="geometry">
<rect>
<x>90</x>
<y>20</y>
<width>81</width>
<height>27</height>
</rect>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>1000</number>
</property>
<property name="value">
<number>100</number>
</property>
</widget>
<widget class="QSpinBox" name="spinBox_3">
<property name="geometry">
<rect>
<x>90</x>
<y>60</y>
<width>81</width>
<height>27</height>
</rect>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>1000</number>
</property>
<property name="value">
<number>60</number>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>30</y>
<width>67</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Columns</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>20</x>
<y>70</y>
<width>67</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Rows</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>20</x>
<y>110</y>
<width>67</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Grid Size</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
当您希望uip变量声明为Ui::PreferencesWindow
:时,它会声明为PreferencesWindow
private:
PreferencesWindow *uip;
将其更改为
private:
Ui::PreferencesWindow *uip;
您还在preferencewindow.cpp中定义Ui::PreferencesWindow
构造函数。这不是您想要做的。您希望在那里定义PreferencesWindow
构造函数。像这样:
PreferencesWindow::PreferencesWindow(QWidget *parent)
:QWidget(parent), uip(new Ui::PreferencesWindow)
{
uip->setupUi(this);
}
相关文章:
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- 等待整个 omp 块完成,然后再调用第二个函数
- 我想在C++中读取一些多个字符,但它永远不会读取第二个字符
- 如何在创建自定义迭代器时获得 std::p air 的第一个和第二个?
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 创建第二个应用窗口并显示它
- 如何按z顺序获取第二个活动窗口?
- 打开第二个窗口后隐藏主窗口?另外,当用户关闭第二个窗口时,主窗口如何重新出现
- 使用第二个线程快速更新 GUI 窗口会通过调整窗口大小或移动窗口而崩溃
- 2个线程 - 一个带有OpenGL窗口的线程,第二个带有WXWIDGETS的窗口
- 将打开的窗口实例作为参数传递到第二个窗口中
- 一个窗口上的MFC:X按钮也在关闭第二个窗口
- 打开Qt中的第二个窗口
- c++ GUI如何在第二个窗口中使用一个窗口中的私有数据
- 多窗口程序-在第二个窗口上创建按钮
- c++ WinApi注册第二个窗口类错误
- Win32 C++正在第二个监视器中创建窗口
- Qt -显示第二个窗口从主窗口
- OpenGL的第二个窗口在第一个窗口停用土壤纹理