我想测试qt是否支持VNC。为此,我使用Qt库编写了一个小布局程序。
布局程序的源代码如下:
layout.cpp
#include <QApplication>
#include <QHBoxLayout>
#include <QSlider>
#include <QSpinBox>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *window = new QWidget;
window->setWindowTitle("Enter The Age of the person");
QSpinBox *spinBox = new QSpinBox;
QSlider *slider = new QSlider(Qt::Horizontal);
spinBox->setRange(0, 130);
slider->setRange(0, 130);
QObject::connect(spinBox, SIGNAL(valueChanged(int)),
slider, SLOT(setValue(int)));
QObject::connect(slider, SIGNAL(valueChanged(int)),
spinBox, SLOT(setValue(int)));
spinBox->setValue(35);
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(spinBox);
layout->addWidget(slider);
window->setLayout(layout);
window->show();
return app.exec();
}
我想在我的linux PC上运行它作为服务器应用程序。为此我配置Qt并安装如下。
该计划工作正常。但是,如果我将应用程序作为VNC服务器应用程序运行,如
./ layout -qws -display VNC:0
我遇到了一个错误。就是说 “_X11TransSocketINETConnect()无法获取VNC的地址:6000:名称解析暂时失败”..
请帮助我做我需要做的事。
由于
答案 0 :(得分:1)
你没有配置Qt来使用QWS,这就是你想要的。
出于这个原因,看起来您的应用程序默默地忽略了-qws
选项,而-display VNC:0
选项导致它尝试连接到主机VNC上的X11显示数字0,不存在。
如果要使用QWS,则需要在配置Qt时传递-embedded
选项。