关于垂直布局添加水平布局报错(不好意思只剩下7分了)

liukunmeister 2009-11-20 10:46:23
在做界面的时候我总体用的是垂直布局 QVBoxLayout, 在中间我想添加一个水平布局 QHBoxLayout,但就是报错,很奇怪,我记得布局是可以通过addWidget添加布局的呀,难道不行?

server.h

#ifndef SERVER_H
#define SERVER_H

#include <QtGui>
#include <tcpServer.h>
#include <QTextEdit>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>


class Server : public QDialog
{
Q_OBJECT
public:
Server(QObject *parent=0);
~Server();
QTextEdit *textEditMsg;
QLabel *labelPort;
QPushButton *buttonCreateChatRoom;
QLineEdit *lineEditPort;
QHBoxLayout *hLayout;
QVBoxLayout *vLayout;
};

#endif // SERVER_H


server.cpp

#include <server.h>

Server::Server(QObject *parent)
{
setWindowTitle("Chat Room");
textEditMsg=new QTextEdit();
labelPort=new QLabel("Port");
lineEditPort=new QLineEdit();
buttonCreateChatRoom=new QPushButton("Create Chat Room");
vLayout=new QVBoxLayout(this);
vLayout->addWidget(textEditMsg);
hLayout=new QHBoxLayout();
hLayout->addWidget(labelPort);
hLayout->addWidget(lineEditPort);
//vLayout->addWidget(hLayout); //注意,就是这里
vLayout->addWidget(buttonCreateChatRoom);
}
Server::~Server()
{}


代码中标记的那行注销一旦去掉就报错,下面是出错信息

Running build steps for project ChatServer...
Starting: D:/Qt/2009.04/mingw/bin/mingw32-make.exe clean -w
mingw32-make: Entering directory `D:/My Documents/QtProgram/TcpNetwork/TcpSrv/ChatServer'
D:/Qt/2009.04/mingw/bin/mingw32-make -f Makefile.Debug clean
mingw32-make[1]: Entering directory `D:/My Documents/QtProgram/TcpNetwork/TcpSrv/ChatServer'
del debug\moc_server.cpp debug\moc_tcpClientSocket.cpp debug\moc_tcpServer.cpp
del debug\main.o debug\server.o debug\tcpClientSocket.o debug\tcpServer.o debug\moc_server.o debug\moc_tcpClientSocket.o debug\moc_tcpServer.o
mingw32-make[1]: Leaving directory `D:/My Documents/QtProgram/TcpNetwork/TcpSrv/ChatServer'
D:/Qt/2009.04/mingw/bin/mingw32-make -f Makefile.Release clean
mingw32-make[1]: Entering directory `D:/My Documents/QtProgram/TcpNetwork/TcpSrv/ChatServer'
del release\moc_server.cpp release\moc_tcpClientSocket.cpp release\moc_tcpServer.cpp
del release\main.o release\server.o release\tcpClientSocket.o release\tcpServer.o release\moc_server.o release\moc_tcpClientSocket.o release\moc_tcpServer.o
mingw32-make[1]: Leaving directory `D:/My Documents/QtProgram/TcpNetwork/TcpSrv/ChatServer'
mingw32-make: Leaving directory `D:/My Documents/QtProgram/TcpNetwork/TcpSrv/ChatServer'
找不到 D:\My Documents\QtProgram\TcpNetwork\TcpSrv\ChatServer\release\moc_server.cpp
找不到 D:\My Documents\QtProgram\TcpNetwork\TcpSrv\ChatServer\release\main.o
Exited with code 0.
Configuration unchanged, skipping QMake step.
Starting: D:/Qt/2009.04/mingw/bin/mingw32-make.exe -w
mingw32-make: Entering directory `D:/My Documents/QtProgram/TcpNetwork/TcpSrv/ChatServer'
D:/Qt/2009.04/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/My Documents/QtProgram/TcpNetwork/TcpSrv/ChatServer'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"d:\Qt\2009.04\qt\include\QtCore" -I"d:\Qt\2009.04\qt\include\QtNetwork" -I"d:\Qt\2009.04\qt\include\QtGui" -I"d:\Qt\2009.04\qt\include" -I"." -I"d:\Qt\2009.04\qt\include\ActiveQt" -I"debug" -I"d:\Qt\2009.04\qt\mkspecs\win32-g++" -o debug\main.o main.cpp
In file included from main.cpp:2:
./server.h:28:19: warning: no newline at end of file
main.cpp:10:2: warning: no newline at end of file
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"d:\Qt\2009.04\qt\include\QtCore" -I"d:\Qt\2009.04\qt\include\QtNetwork" -I"d:\Qt\2009.04\qt\include\QtGui" -I"d:\Qt\2009.04\qt\include" -I"." -I"d:\Qt\2009.04\qt\include\ActiveQt" -I"debug" -I"d:\Qt\2009.04\qt\mkspecs\win32-g++" -o debug\server.o server.cpp
In file included from server.cpp:1:
./server.h:28:19: warning: no newline at end of file
server.cpp: In constructor `Server::Server(QObject*)':
server.cpp:15: error: no matching function for call to `QVBoxLayout::addWidget(QHBoxLayout*&)'
d:/Qt/2009.04/qt/include/QtGui/../../src/gui/kernel/qboxlayout.h:85: note: candidates are: void QBoxLayout::addWidget(QWidget*, int, Qt::Alignment)
mingw32-make[1]: Leaving directory `D:/My Documents/QtProgram/TcpNetwork/TcpSrv/ChatServer'
mingw32-make: Leaving directory `D:/My Documents/QtProgram/TcpNetwork/TcpSrv/ChatServer'
mingw32-make[1]: *** [debug/server.o] Error 1
mingw32-make: *** [debug] Error 2
Exited with code 2.
Error while building project ChatServer
When executing build step 'Make'


大家帮我看看是怎么回事,垂直布局应该是可以添加水平布局的呀。
...全文
138 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liukunmeister 2009-11-21
  • 打赏
  • 举报
回复
谢谢,问题解决了
dext 2009-11-21
  • 打赏
  • 举报
回复
对于这种动态创建 Widget 的情况
首先 要创建 一个 空的 widget, 你所有的布局 Widget 都加 到 这个 空白的 Widget里,
最后 在 添加 这个 widget 到你的 窗口里。

添加 布局 用的是 addLayout

16,239

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧