草庐IT

c++ - 将 Google 地球嵌入到桌面应用程序而非网站中。 QT 是一个真正的选择吗?

我打算开发一个桌面应用程序来模拟环绕地球运行的卫星摄像机。我想在桌面应用程序中使用Google地球,而不是将其嵌入到网站中。显然GoogleEarthAPI是唯一的选择优惠是针对网页的我读了StackOverflowpost使用QT可以将Google地球嵌入到桌面应用程序中,但是所引用网站中的大多数链接都已损坏,因此缺少有关该主题的大量信息。此外,我找到的所有信息都非常古老。谁能建议我在桌面应用程序中嵌入Google地球的方法?我对C++、ADA和VisualBasic有一些经验,但对QT一无所知。 最佳答案 将Google地球嵌入

c++ - QSystemTrayIcon 未显示在 Ubuntu 14.04 的通知区域中

我正在编写一个使用QSystemTrayIcon的应用程序。一切正常,但图标没有出现在右上角的Unity通知区域中,而是出现在左上角。当前构建环境是clang3.4,Ubuntu14.04上的QT5.3。使用MinGW交叉编译并在wine中运行应用程序时,图标正确显示。这可能是Ubuntu中缺少的设置吗?这是一个产生相同行为的简单片段:#include#includeintmain(intargc,char*argv[]){QApplicationapp(argc,argv);QPixmappixmap(32,32);pixmap.fill(Qt::red);QIconicon(pix

c++ - QT复制到QTemporaryFile

我想复制some/path/myfile在$TMPDIR/myprog-.ext,这样我就可以将它传递给第3方程序,该程序会阻塞无扩展名文件。这是我想要的工作:QStringoriginalPath="some/path/myfile";QTemporaryFilef(QDir::temp().absoluteFilePath("mprog-XXXXXX.ext"));//f.open();?QFile(originalPath).copy(f.fileName());但是,我现在遇到了一个问题-要么该文件尚不存在,因此还没有分配临时fileName(),或者文件名已分配但文件本身已经

c++ - QWidget::createWindowContainer 的绘图错误和崩溃

在我的Qt5.3应用程序中,我想将来自子进程的GUI集成到我的主进程的窗口中:子进程创建一个顶级QWidget。子进程将从QWidget::winId()返回的小部件的WId传递给父进程(使用IPC)。父进程使用QWindow::fromWinId()和QWidget::createWindowContainer()创建一个显示子进程GUI的QWidget.此小部件嵌入到另一个小部件的布局中。观察:子GUI显示但未正确呈现:在调整父级大小时,白色边框未正确更新。如果父窗口调整得太小,则子进程会因Qt代码中的内存访问冲突而崩溃。如果我不使用QWidget::createWindowCon

c++ - Qt 中不一致的 XML 符号

我正在使用Qt和C++来读/写XML文件。虽然我只使用Qt类,但有一个奇怪的行为。QDomDocumentdocument;QDomElementelement=document.createElement("QString");QDomTexttextNode=document.createTextNode("");//Emptystring.element.appendChild(textNode);有时XML文件中的结果是有时它是.有谁知道为什么会这样? 最佳答案 因为您没有提供MCVE,我写道:#include#includ

C++ Qt QComboBox 与 TableView

我对QComboBox有疑问。我需要一个带有tableview项目的组合框。例如QComboBox的默认是:┌─────────┐│▼│├─────────┤│index0│├─────────┤│index1│├─────────┤│index2│├─────────┤│index3│└─────────┘我需要像这样创建ComboBox:┌───────────────────┐│▼│├─────────┬─────────┤│index0│index1│├─────────┼─────────┤│index2│index3│└─────────┴─────────┘我写了示例,但

c++ - 在 Wireshark 中看到的数据报,Qt UDP 套接字未收到

我正在编写一个通过UDP套接字与FPGA通信的Qt(5.6)应用程序。数据包以2KHz的速率流式传输到PC(所有数据包大小相同,1272字节)。Wireshark显示正在发送数据包,并且UDPheader符合预期。问题是,我正在使用的QtUDP套接字从未收到这些数据包。readyRead信号永远不会被调用。这是一个代码片段:UdpConnection::UdpConnection(QObject*parent){fpgaConnection=QSharedPointer(newQUdpSocket);qDebug()bind(QHostAddress("192.168.10.10"),

c++ - 使用 C++ Lambda 函数作为 Qt 中的槽是否有助于保持库的二进制兼容性?

我关心的是使在Qt5.9下开发的小部件库能够在未来升级而无需重新编译已经使用它的代码。当然,我是从PImpl习语开始的,它的Qt版本描述了here和here。然而,在尝试调整我的代码时,我想到了一个想法,与其添加新的数据成员并将它们移动到一个单独的私有(private)类,不如使用Qt的带有lambda函数的信号/槽机制,并且只有本地变量。让我们用下面的例子来说明这个想法:变体A:classFoo:publicQWidget{Q_OBJECTpublic:explicitFoo(QWidget*parent=nullptr);private://AbunchofdatamembersQ

c++ - Qt 基于参数值映射信号

我知道我可以使用QSignalMapper根据连接调用具有不同参数的插槽。我想要实现的有点不同。我们在应用程序中使用插件,不同的插件负责不同类型的对象。我们将多个插槽连接到主应用程序发出的一个信号,每个插槽都在不同的插件中实现。信号的参数之一是QString,指示与信号关联的对象类型。目前,我们正在插槽中检查此参数,如果类型由插件处理则继续。这有一个缺点,每个插件都会进行此检查,我想尽可能避免这种情况。我想将所有插槽连接到同一个信号,当信号发出时,根据QString参数的值只调用适当的插槽,有点像QSignalMapper但方式不同。是否有任何内置机制可以做到这一点?如果没有,关于我如

c++ - Qt 应用程序文本大小在 MacOSX 下不正确

在Windows下使用QtCreator设计UI,并在MacOSX下移植相同的.ui文件会导致一些文本部分非常小的设计——实际上是HTML部分。这似乎是因为QtCreator使用pt而不是px作为文本大小单位,并且默认屏幕分辨率在Windows和MacOSX。我没有得出更一致的结果有什么原因吗?除了将每个pt编辑成px之外,是否有任何解决方法?谢谢。 最佳答案 根据经验,您不应在QtDesigner/Creator中手动指定控件的字体大小,因为这会导致您遇到问题。不一致的原因是不同平台使用不同的DPI设置(Windows上为96dp