我正在尝试连接QPushButton
到 lambda 表达式:
QPushButton* loadTextFileButton = new QPushButton("load");
connect(loadTextFileButton, &QPushButton::clicked, [](){
qDebug()<<"clicked";
});
Run Code Online (Sandbox Code Playgroud)
编译器给我一个错误,例如:没有匹配的函数来调用“MyClass::connect(...”
我做错了什么?
我想将JFileChooser
开始目录更改为桌面.所以,在我的电脑里我写道:
JFileChooser fc = new JFileChooser("C:\\Users\\LNK\\Desktop");
Run Code Online (Sandbox Code Playgroud)
问题是,当我编译我的代码并在另一台计算机上运行程序时,它不起作用,因为没有C:\\Users\\LNK\\Desktop
路径.那么,是否存在某种桌面的"apsolute"路径?
我动态添加选项卡TabView
并将选项卡的项目传递给c ++以进行进一步处理.问题是方法tabview.getTab(tabview.getTab(tabview.count-1).item)
返回null
哪个索引> 0.这是代码:
//main.qml
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
signal tabAdded(variant c)
ColumnLayout{
anchors.fill: parent
TabView{
visible: true
id:tabview
Layout.fillHeight: true
Layout.fillWidth: true
}
Button{
text: "add tab"
onClicked:{
var c = Qt.createComponent("Tab.qml");
tabview.addTab("tab", c)
// tabAdded(tabview.getTab(tabview.count-1).item)
console.log(tabview.getTab(tabview.count-1).item)
}
}
}
}
//Tab.qml
import QtQuick 2.0
import QtQuick.Controls 1.1
Item{
signal tabButtonClicked()
anchors.fill: parent
Button{
text: "tabButton"
anchors.centerIn: parent …
Run Code Online (Sandbox Code Playgroud) 我正在继承 QwtPlot。我有以下错误:
moc_myplot.obj:-1:错误:LNK2001:无法解析的外部符号“公用:静态结构QMetaObject常量QwtPlot :: staticMetaObject”(staticMetaObject @ QwtPlot @@ 2UQMetaObject @@ B') 我曾尝试以下操作:运行QMAKE,重建,清理,删除调试文件夹,重新编译qwt库。那没有帮助。这是最少的代码:myplot.h:
#ifndef MYPLOT_H
#define MYPLOT_H
#include <QObject>
#include <qwt_plot.h>
class MyPlot : public QwtPlot
{
Q_OBJECT
public:
MyPlot();
};
#endif // MYPLOT_H
Run Code Online (Sandbox Code Playgroud)
myplot.cpp:
#include "myplot.h"
MyPlot::MyPlot()
{
}
Run Code Online (Sandbox Code Playgroud)
这是.pro文件:
#-------------------------------------------------
#
# Project created by QtCreator 2015-06-22T19:33:24
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = MyPlot
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp \
myplot.cpp
HEADERS += mainwindow.h \
myplot.h …
Run Code Online (Sandbox Code Playgroud) 我有矩阵A(n,m),我想将它乘以向量b(n),因此结果B [n,m] = A [n,m]*b [n].可以通过创建一个新矩阵C=b*ones(1,m)
然后使用点乘法来实现:B=A.*C
但是它浪费了内存(大小A
为5000*1000).可以使用循环.也许还有更优雅的方式呢?
我想要填充图标Button
.这是代码:
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.1
import QtQuick.Window 2.2
Window{
id: root
title: "settings"
flags: Qt.Dialog
minimumHeight: 700
minimumWidth: 700
maximumHeight: 700
maximumWidth: 700
ColumnLayout{
id: columnLayout
anchors.fill: parent
RowLayout{
Button{
iconSource: "images/1x1.png"
checkable: true
checked: true
Layout.minimumWidth: 100
Layout.minimumHeight: 100
}
Button{
iconSource: "images/1x2.png"
checkable: true
checked: false
Layout.minimumWidth: 100
Layout.minimumHeight: 100
}
Button{
iconSource: "images/2x1.png"
checkable: true
checked: false
Layout.minimumWidth: 100
Layout.minimumHeight: 100
}
Button{
iconSource: "images/2x2.png"
checkable: true
checked: false
Layout.minimumWidth: …
Run Code Online (Sandbox Code Playgroud) 我有Qt
这个类的子类QQuickImageProvider
是requestPixmap
函数实现:
QPixmap MyImageProvider::requestPixmap(const QString &id, QSize *size, const QSize
&requestedSize){
int width = 100;
int height = 50;
if (size)
*size = QSize(width, height);
QPixmap pixmap(requestedSize.width() > 0 ? requestedSize.width() : width,
requestedSize.height() > 0 ? requestedSize.height() : height);
pixmap.fill(QColor(id).rgba());
return pixmap;
}
Run Code Online (Sandbox Code Playgroud)
在qml
我有GridLayout
哪些项目来自图像提供商.通过单击按钮,我可以显示1,2或4项.这是qml
文件:
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.1
import QtQuick.Window 2.2
Window{
id: root
title: "settings"
modality: Qt.ApplicationModal
flags: Qt.Dialog …
Run Code Online (Sandbox Code Playgroud) 我有一个JTextField
,我想添加一个监听器,一旦JTextField
失去焦点就会收到一些事件(比如当我用鼠标按下另一个组件时).另外,我想让一个监听器在text
参数JTextField
改变时接收一个事件(比如我设置的时候jtextfield.setText(anotherText)
).知道我应该怎么做?
我有一个矢量a
和一个vecor b
.并且有一个绑定的向量lb
和ub
.我想替换:a[i] = b[i]
如果lb[i]<b[i]<ub[i]
.我怎么能没有循环呢?
我想TextField
在单击按钮时闪烁。使用 QTimer 很容易做到:
void MyLineEdit::buttonClickedSlot{
for(int i=1;i<15;i+=2){
QTimer::singleShot(100*i, this, SLOT(changeBackgroundColor("QLineEdit{background: red;}")));
QTimer::singleShot(100*(i+1), this, SLOT((changeBackgroundColor("QLineEdit{background: white;}")));
}
}
void MyLineEdit::changeBackgroundColor(QString str){
this->setStyleSheet(str)
}
Run Code Online (Sandbox Code Playgroud)
然而,我没有找到类似的东西,QTimer
所以QML
我决定通过动画来完成。这QML
是代码:
Rectangle{
ColumnLayout{
anchors.fill: parent
TextField{
id: txt
text: "hello"
style: TextFieldStyle{
background:Rectangle {
id: rect
radius: 2
implicitWidth: 100
implicitHeight: 24
border.color: "#333"
border.width: 1
color: "white"
}
}
}
ColorAnimation{
id: whiteToRed
target: rect //reference error: rect is not defined
properties: "color"
from: "white"
to: "red"
duration: 300 …
Run Code Online (Sandbox Code Playgroud)