qt 相关问题

Qt是一个跨平台的应用程序开发框架,广泛用于开发应用程序软件,可以在各种软件和硬件平台上运行,底层代码库很少或没有变化,同时具有本机应用程序的功能和速度。 Qt提供商业和开源许可证。

我的应用程序中的 QKeyEvent 不起作用

我想编写一个响应我的按键事件的复古蛇,这是我的代码: 油漆.h #ifndef PAINT_H #定义PAINT_H #包括 #包括 #包括 我想编写一个复古蛇来响应我的按键事件,这是我的代码: paint.h #ifndef PAINT_H #define PAINT_H #include<QWidget> #include<QPaintEvent> #include<QKeyEvent> #include<QTimer> class paint:public QWidget { Q_OBJECT public: paint(QWidget*parent=0); ~paint(); protected: void paintEvent(QPaintEvent* ); void keypress(QKeyEvent* keyevent); public slots: void autorun(); private: int snake[100][2]; int length; QTimer *timer; int flag; }; #endif paint.cpp #include"paint.h" #include<QtGui> paint::paint(QWidget*parent):QWidget(parent) { flag=1; snake[0][0]=45; snake[0][1]=45; length=4; timer=new QTimer; timer->start(1000); connect(timer,SIGNAL(timeout()),this,SLOT(autorun())); } paint::~paint(){} void paint::paintEvent(QPaintEvent* ) { QPainter p(this); p.setWindow(0,0,810,810); QRectF border(45-20,45-20,16*45+40,16*45+40); QRectF inter(45,45,16*45,16*45); p.setPen(Qt::NoPen); p.setBrush(QBrush(Qt::darkMagenta,Qt::SolidPattern)); p.drawRect(border); p.setBrush(QBrush(Qt::gray,Qt::SolidPattern)); p.drawRect(inter);// p.setPen(Qt::NoPen); for(int i=45;i<=17*45;i+=45) { p.drawLine(45,i,17*45,i); p.drawLine(i,45,i,17*45); } p.setPen(QPen(Qt::darkGray,1,Qt::SolidLine,Qt::RoundCap,Qt::RoundJoin)); // for(int i=0;i<length;++i) { QRectF snakebody(snake[0][0],snake[0][1],45,45); p.setBrush(QBrush(Qt::red)); p.drawRect(snakebody); } } void paint::keypress(QKeyEvent* keyevent) { qDebug()<<"key"<<endl; switch(keyevent->key()) { case Qt::Key_Up: snake[0][1]=45; break; case Qt::Key_Down: snake[0][1]=720; break; case Qt::Key_Left: snake[0][0]=45; break; case Qt::Key_Right: snake[0][1]=720; break; case Qt::Key_Q: qDebug()<<"Q"<<endl; break; } } void paint::autorun() { snake[0][1]+=45; if(snake[0][1]>720) { snake[0][1]=45; snake[0][0]+=45; if(snake[0][0]>720) { snake[0][0]=45; } } update(); } 重点关注keypress()函数,我想知道这个函数没有连接到任何东西,它能工作吗?其实没有,但我不知道如何激活它。我还需要做其他事情吗? http://qt-project.org/doc/qt-4.8/qwidget.html#keyPressEvent。您需要重写 keyPressEvent,而不是创建自己的 keyPress 函数。 所以,改变吧 void keypress(QKeyEvent* keyevent); 到 void keyPressEvent(QKeyEvent* keyevent) 您还必须使用 setFocusPolicy 参数调用小部件的 Qt::StrongFocus 函数。因此小部件通过 Tab 键和单击来接受焦点。

回答 2 投票 0

作为 Qt Slot 的成员函数

我需要将一个按钮连接到另一个类的成员函数。这里是类的代码: int g_switch_value = 0; int 过滤器Int = 0; int 最后过滤器Int = -1; void MoyenEtMedian::switch_callback(...

回答 2 投票 0

qt 连接 cids 按钮

我有 类主窗口:公共 QMainWindow { Q_OBJECT 民众: 显式MainWindow(QWidget *parent = 0); 〜主窗口(); 私人插槽: 无效 getData(); 私人的: 用户界面::

回答 1 投票 0

Qt - 已连接但不起作用

我的项目中的一个类有问题,单击后会出现带有 QTableWidget 和 QPushButton 的新窗口,单击按钮后我应该在标准输出上进行“测试”,但没有显示任何内容,这里是...

回答 3 投票 0

PyQt QGraphicsScene 将场景渲染为视频格式

我试图允许用户将场景导出为mp4(视频格式),场景的项目由QGraphicsVideoItem和多个QGraphicsTextItem组成,我需要按原样导出场景

回答 1 投票 0

如何在 Qt Cmake 项目中使用 QML_IMPORT_PATH?

我需要为项目提供一些模块。 现在,它在 QT 目录中查找它们(我已将其安装在 $HOME 中),但我想让它在 /usr/lib/x86_64-linux-gnu/qt5/qml/ 中搜索。 W...

回答 2 投票 0

如何更改QTextOption.ShowTabsAndSpaces使用的字符?

有没有办法改变QT的QTextOption.ShowTabsAndSpaces标志使用哪个字符? 我发现用于查看空白(特别是空格)的默认字符突出了

回答 2 投票 0

PyQt5 如何将 pyuic5 生成的 Python 类添加到 QStackedWidget 中?

我的app.py中有这个: 从 PyQt5 导入 QtWidgets 从屏幕导入 Ui_home、Ui_login_page 类 MainWindow(QtWidgets.QMainWindow): def __init__(自身): QtWidgets.QMainWindow.__init__(

回答 1 投票 0

Qt 5,获取鼠标在屏幕中的位置

首先,我想提一下,我发现了相关帖子How to get the mouse position on the screen in Qt?但它对我来说“不起作用”。我做了一些测试,结果不起作用......

回答 8 投票 0

必须按QPushbutton两次

我想在QT中制作一个工具按钮列表。工具按钮应出现在 scolla 区域中。单击按钮时应出现此列表。我已经编写了代码并且它可以工作,但我必须这样做

回答 1 投票 0

如何调试失败的信号/槽连接?

我正在关注Jasmin Blanchettes书的第二章 C++-GUI-Programming-with-Qt-4-1st-ed.pdf 尝试使用带有 Qt 的 MS VS 2008 设置对话框 GoToCellDialog。 示例编译通过,迪...

回答 1 投票 0

Qt:如何连接“DialogClass1”的 QPushButton 来杀死“Class2”中的 QProcess?

我有代码: 无效处理方法() { QDialog *ProcessMessage = 新 QDialog; // 如何连接对话框按钮来终止 processmethodONE() 中调用的进程? 用户界面::

回答 2 投票 0

QErrorMessage 和 QValidator

我正在尝试使用 Qt 中提供的一些小部件来控制我的用户输入。我希望错误消息能够准确显示用户输入的错误,所以我认为使用 switch 语句

回答 1 投票 0

Qt 主窗口菜单信号

我有处理 QMainWindow 的“Core”对象。 Core.h代码 核心类:公共 QObject { Q_OBJECT 民众: 显式 Core(QObject *parent = 0); 〜核心(); 无效appInit(); int getAu...

回答 1 投票 0

QGroupBox 边框

搜索了一段时间后,我发现在组框上设置可见边框的方法是使用 StyleSheet 属性。我补充道: 边框:2px 纯灰色; 但有几个问题。 1)

回答 4 投票 0

Qt4 使用类创建一个 SLOT 来控制 QWebView 的 setTextSizeMultiplier 使用 CONNECT 和 QSLIDER

使用Qt4,如何创建一个类来创建一个SLOT,以使用CONNECT和QSLIDER来控制QWebView的setTextSizeMultiplier。 我的代码:(thesliderbar是QSlider,vweb是QWebView) 班级网讯...

回答 1 投票 0

Qt C++ 连接QSlider到QWebView的setTextSizeMultiplier

如何在Qt中将QSlider连接到QWebView的setTextSizeMultiplier?我希望网页的文本在更改时根据滑块的值变小或变大。 这就是我正在努力做到的,...

回答 1 投票 0

如何使原始(0,0)坐标位于QGLWIdget的左上角?

我想使用QGLWidget显示图像,它没有以正确的方式显示,问题之一是原始坐标位于小部件的左下角。 我想知道如何制作...

回答 3 投票 0

如何将信号从 qconcurrent 线程连接到共享一个字符串的 gui 线程

我正在尝试使用其他线程信息(QString)更新gui标签。 类MainWindow:公共QMainWindow { Q_OBJECT 民众: 显式MainWindow(QWidget *parent = 0); 〜主窗口();

回答 1 投票 0

状态栏的QT连接功能

我正在尝试在 QT c++ 中制作一个类似记事本的应用程序,现在我正在尝试实现一个简单的状态栏,告诉用户光标的行和列。 我一直在使用连接符...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.