小编tro*_*ane的帖子

qmake适用于RaspberryPi

我正在尝试制作一个qmake .pro文件以在RaspberryPi中进行编译(不适用于交叉编译)。我可以根据平台使用条件定义:

linux-g++-64: {
    message(We are in Linux 64 bits)
}
macx: {
    message(we are in mac osX)
}
win32: ...
Run Code Online (Sandbox Code Playgroud)

但是我找不到一种方法来检测我何时处于带有树莓派的PaspberryPi中。

我尝试过类似linux-arm,的方法arm-linuxlinux-arm-gnueabi-g++但是没有运气。

有人知道进行此条件定义的正确方法,或者如何检测我们是否在RaspberryPi体系结构中进行编译?

c++ linux qt qmake raspberry-pi

6
推荐指数
1
解决办法
1464
查看次数

C++/Qt:画一个插入符号

我正在学习Qt.我刚开始通过继承QAbstractScrollArea从头开始编写文本编辑器.我这样做只是为了练习.但是现在我面临着显示插入符号的问题.我想到的是painter.drawLineQTimer.你能就此提出一些建议吗?我也很高兴听到一些实施阻止和下划线插入的策略.

关闭主题:这是一个错误吗?StackOverflow说这个问题有两个答案,但我只看到一个!

c++ qt paint caret

5
推荐指数
1
解决办法
2159
查看次数

Qt:QScrollArea中的自定义小部件

我正在尝试创建自定义小部件.我的Widget渲染自己,除非它在滚动区域内.以下代码有效.如果我在MainWindow构造函数中将if(0)更改为if(1),它将不会呈现"Hello World"字符串.我假设我必须(重新)实现一些额外的方法,但到目前为止,我无法通过反复试验找到正确的方法.

// hellowidget.h
#ifndef HELLOWIDGET_H
#define HELLOWIDGET_H

#include <QtGui>

class HelloWidget : public QWidget
{
    Q_OBJECT
public:
    HelloWidget(QWidget *parent = 0);
    void paintEvent(QPaintEvent *event);
};

#endif // HELLOWIDGET_H

// hellowidget.cpp
#include "hellowidget.h"
HelloWidget::HelloWidget(QWidget *parent)
: QWidget(parent)
{
}
void HelloWidget::paintEvent(QPaintEvent *event)
{
     QPainter painter(this);
     painter.drawText(rect(), Qt::AlignCenter, "Hello World");
}

// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
};

#endif // MAINWINDOW_H

// mainwindow.cpp
#include "mainwindow.h" …
Run Code Online (Sandbox Code Playgroud)

c++ qt qwidget

5
推荐指数
1
解决办法
2万
查看次数

当应用失去焦点时,Qt系统托盘上下文菜单仍然存在

我为我的应用程序设置了一个系统托盘图标,并附加了一个简单的上下文菜单.如果我右键单击该图标以显示上下文菜单,它可以正常工作.如果我然后单击丢失应用程序焦点的某个地方(例如,任务栏上的其他位置或其他应用程序),则不会删除上下文菜单,并且在单击时仍会触发正确的操作.但是,如果我单击主应用程序,则上下文菜单会按预期消失.

以下是创建托盘图标和上下文菜单的相关代码 -

actionExit = new QAction( "Exit", this );
connect( actionExit, SIGNAL( triggered() ), this, SLOT( ExitClient() ));

myTrayIconMenu = new QMenu( this );
myTrayIconMenu->addAction( actionExit );

trayIcon = new QSystemTrayIcon( icon, this );
trayIcon->setContextMenu( myTrayIconMenu );
connect( systrayIcon, SIGNAL( activated( QSystemTrayIcon::ActivationReason )), 
         this, SLOT( ToggleVisibility( QSystemTrayIcon::ActivationReason )));
trayIcon->show( );
Run Code Online (Sandbox Code Playgroud)

我是否需要添加自己的代码来测试应用程序失去焦点,以便我可以手动隐藏上下文菜单?我曾假设这个功能将被内置.

[问题出现在Windows 7中,通过Qt插件使用Visual Studio 2010 Pro进行编译 - 我没有在任何其他操作系统下测试过]

我在API文档中注意到了这一点 -

注意:系统托盘图标不取决于菜单的所有权.您必须确保在适当的时候删除它,例如,使用合适的父对象创建菜单.

如果我使用

myTrayIconMenu = new QMenu( );
Run Code Online (Sandbox Code Playgroud)

代替

myTrayIconMenu = new QMenu( this );
Run Code Online (Sandbox Code Playgroud)

当应用程序失去焦点时,将删除上下文菜单.但是,我需要注意手动删除上下文菜单.

其他人如何处理这种情况?

windows qt contextmenu system-tray qmenu

5
推荐指数
1
解决办法
3550
查看次数

如何在QML中从显示中删除/删除屏幕/页面?

我有一个Loader使用我正在加载多个屏幕/页面.

我有大约10个QML屏幕/页面,我在鼠标事件中逐个加载到加载程序中.

在某些屏幕上,我需要使用QWidget::setMask()功能设置透明度,使屏幕/页面的某些部分变得透明,并在屏幕上打孔.

我使用CPP代码做设定屏蔽QWidget::setMask()rootObject,这是Loader屏幕.

QWidget::setMask 工作正常,但屏蔽区域显示以前加载的屏幕/页面.

所以我有一个问题,如在文档http://doc.qt.nokia.com/4.7-snapshot/qml-中提到的那样,Loader元素在加载新屏幕/页面之前是否正确地从显示中删除/删除了已加载的组件.loader.html.Loader

还有两个名为Component.onDestroyedand的函数Component.onDestruction

当我在Loader onDestruction事件中加载新的屏幕/页面时,被加载的屏幕被触发.

我想在加载器中加载新页面后,从显示中完全删除/销毁屏幕/页面.我还尝试设置以前加载的屏幕的可见性和不透明度,但我仍然可以在蒙版区域中看到以前加载的屏幕/页面.

如果我设置了加载器source = "",sourceComponent = undefined然后我也可以在Loader中看到之前加载的页面,它不会刷新屏幕.上一页被销毁,但未从显示中清除/删除.

应该是什么原因?

qt qml qt-quick

5
推荐指数
1
解决办法
1781
查看次数

没有清单。jar 未签名。(签名丢失或不可解析)

当我使用 签署我的 Android 应用程序时keytool,它给出了上述错误。

没有清单。jar 未签名。(签名丢失或不可解析)

我已经创建了密钥库一切。原因是什么?有明显错误吗?

android sign android-manifest

5
推荐指数
1
解决办法
2780
查看次数

Qt SDK,Apwrapper:它是什么,它做了什么.

我为visual studio阻止了网络连接.使用visual studio add in安装Qt SDK后,收到错误消息,无法连接到AppWrapper.卸载了SDK,不再尝试连接到AppWrapper.什么是Qt安装的AppWrapper?为什么在打开Visual Studio时会尝试建立网络连接?

networking qt visual-studio

5
推荐指数
1
解决办法
1872
查看次数

将字符数组的内容复制到Qt中的QString

我有一个字符指针,在任何运行中可以有不同的长度.例如:

char*  myChar;
Run Code Online (Sandbox Code Playgroud)

在一次运行中,其内容可以是"Hi",而在另一次运行中,它可以是"Bye".

我想将内容复制myChar到QString,例如,如果我有:

QString myString;
Run Code Online (Sandbox Code Playgroud)

我要复制内容myCharmyString; 我怎样才能做到这一点?

c++ qstring qt character-arrays

5
推荐指数
1
解决办法
2万
查看次数

Qt qDebug()在Windows shell中不起作用

我在屏幕上使用qDebug()Qt框架printf.当我从Qt Creator运行应用程序时它工作得很好,但是当我尝试从Windows执行它时cmd它什么也没显示.为什么会这样?

printf qt console-application qdebug

5
推荐指数
1
解决办法
4015
查看次数

通过jQuery获取没有文本的HTML片段

我有一个带有div容器的HTML代码,里面有另一个HTML元素和文本

<div id="container"><i class="myico"></i> text</div>
Run Code Online (Sandbox Code Playgroud)

我需要从没有文本的容器中获取HTML元素.

所以我只需要得到

<i class="myico"></i>
Run Code Online (Sandbox Code Playgroud)

我如何使用jQuery获取它?

html javascript jquery

5
推荐指数
1
解决办法
619
查看次数