当前位置:首页 » 股票涨停 » qtqml股票软件

qtqml股票软件

发布时间: 2022-06-19 02:42:18

㈠ 如何用Qt实现组件供QML使用

用Qt实现一个UI:一个圆形图标在圆圈内或圆圈上拖动,但不能拖出到圆圈外。当拖动到圆圈上时,高亮图标和圆圈。类似有RingLock。

1、继承QQuickPaintedItem类,该类为QQuickItem的子类。QQuickItem用于不用显示UI的供QML使用的组件;QQuickPaintedItem用于需要显示UI的供QML使用的组件。本案例中,需要画图,故而继承QQuickPaintedItem。

/*imagedragwidget.h*/

#ifndef IMAGEDRAGWIDGET_H
#define IMAGEDRAGWIDGET_H
#include <QQuickPaintedItem>
#include <QtCore>
#include <QtGui>
class imageDragWidget : public QQuickPaintedItem
{
Q_OBJECT
public:
explicit imageDragWidget(QQuickPaintedItem *parent = 0);
~imageDragWidget();
signals:
//鼠标按下
void dragPress();
//鼠标在圆圈内移动
void dragMoveIn();
//鼠标在圆圈上移动
void dragMoveOn();
//鼠标释放
void dragRelease();
//鼠标移出圆圈,确认关机
void dragOut();
public slots:
protected:
void paint(QPainter * painter);
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
private:
//判断鼠标和圆圈的位置关系:圆圈外、圆圈上、圆圈内
int circleContain(void);
//判断鼠标和图标的位置关系:图标外、图标上、图标内
int powerContain(void);
//得到鼠标与圆心连线和圆圈的交点
QPoint GetPoint(QPoint currentPoint, QPoint circleCenter, int rais);
private:
QPixmap *circle_defaultImg;
QPixmap *circle_boldImg;
QPixmap *power_haloImg;
QPixmap *power_solidImg;
QPixmap *power_defaultImg;
//当前圆圈图片
QPixmap *circleImg;
//圆圈图片所在矩形
QRect *circleImgRect;
//当前图标图片
QPixmap *powerImg;
//图标图片所在矩形
QRect *powerImgRect;
//当前鼠标所在位置
QPoint currentMousePoint;
//图标所在位置
QPoint powerCenterPoint;
//鼠标是否按下的标志
bool pressFlag;
//鼠标是否移出的标志
bool isOut;
//宽度缩放比例
double widthScale;
//高度缩放比例
double heightScale;
};
#endif // IMAGEDRAGWIDGET_H

/*imagedragwidget.cpp*/

#include "imagedragwidget.h"
#include <QDebug>
imageDragWidget::imageDragWidget(QQuickPaintedItem *parent) :
QQuickPaintedItem(parent)
{
//得到屏幕尺寸
QScreen *screen = QGuiApplication::primaryScreen();
int screen_width = screen->size().width();
int screen_height = screen->size().height();
qDebug()<<"屏幕尺寸: "<<screen_width<<"*"<<screen_height;
//圆圈所在图片尺寸为:452*452; 图标所在图片尺寸为:350*350
//滑动图标的尺寸128*128
double widgetScale = (double)580/(double)720;
qDebug()<<"控件占屏幕比例: "<<widgetScale;
//设置控件尺寸
setContentsSize(QSize(screen_width*widgetScale, screen_width*widgetScale));
int widget_width = contentsSize().width();
int widget_height = contentsSize().height();
qDebug()<<"控件尺寸: "<<widget_width<<"*"<<widget_height;
//接收鼠标左键
setAcceptedMouseButtons(Qt::LeftButton);
circle_defaultImg = new QPixmap(":/images/circle_default.png");
circle_boldImg = new QPixmap(":/images/circle_bold.png");
power_haloImg = new QPixmap(":/images/power_halo.png");;
power_solidImg = new QPixmap(":/images/power_solid.png");
power_defaultImg = new QPixmap(":/images/power_default.png");
isOut = false;
circleImg = circle_defaultImg;
int circle_width = circleImg->width();
int circle_height = circleImg->height();
//设置圆圈图片在实际屏幕上的尺寸
//滑动图标的尺寸128*128
int circle_width_in_widget = widget_width - 128*widgetScale;
int circle_height_in_widget = widget_height - 128*widgetScale;
qDebug()<<"滑动圆圈尺寸: "<<circle_width_in_widget<<"*"<<circle_height_in_widget;
widthScale = (double)circle_width_in_widget/(double)circle_width;
heightScale = (double)circle_height_in_widget/(double)circle_height;
qDebug()<<"圆圈和图标宽度缩放比例为: "<<widthScale<<"高度缩放比例为: "<<heightScale;
circleImgRect = new QRect(0, 0, circle_width*widthScale, circle_height*heightScale);
//圆圈图片移到控件中心
circleImgRect->moveCenter(QPoint(widget_width/2, widget_height/2));
powerImg = power_defaultImg;
int power_width = powerImg->width();
int power_height = powerImg->height();
powerImgRect = new QRect(0, 0, power_width*widthScale, power_height*heightScale);
//图标图片移到控件中心
powerImgRect->moveCenter(circleImgRect->center());
powerCenterPoint = circleImgRect->center();
}
void imageDragWidget::paint(QPainter *painter)
{
painter->drawPixmap(*circleImgRect, *circleImg);
painter->drawPixmap(*powerImgRect, *powerImg);
}
void imageDragWidget::mouseMoveEvent(QMouseEvent *event)
{
if(pressFlag) {
//鼠标已按下
int power_width = powerImgRect->width();
int power_height = powerImgRect->height();
int circle_width = circleImgRect->width();
int circle_height = circleImgRect->height();
currentMousePoint = event->pos();
int flag = circleContain();
if(flag < 0) {
//鼠标在圆圈内,则图标移动到鼠标位置
powerImg = power_haloImg;
circleImg = circle_defaultImg;
powerImgRect->moveCenter(currentMousePoint);
powerCenterPoint = currentMousePoint;
isOut = false;
} else if(flag == 0) {
//鼠标在圆圈上,则图标移动到鼠标位置,同时更换图片
powerImg = power_solidImg;
circleImg = circle_boldImg;
powerImgRect->moveCenter(currentMousePoint);
powerCenterPoint = currentMousePoint;
isOut = true;
} else {
//鼠标在圆圈外
isOut = true;
if(powerContain() > 0) {
//鼠标在圆圈外且在图标外,则等同于鼠标释放。图标回到控件中心。
powerImg = power_defaultImg;
powerImgRect->moveCenter(circleImgRect->center());
pressFlag = false;
circleImg = circle_defaultImg;
} else {
//鼠标在圆圈外且不在图标外,则图标移到鼠标与控件中心连线和圆圈的交点。
powerImg = power_solidImg;
circleImg = circle_boldImg;
powerCenterPoint = GetPoint(currentMousePoint,
circleImgRect->center(), circleImgRect->width()/2);
powerImgRect->moveCenter(powerCenterPoint);
}
}
powerImgRect->setHeight(power_height);
powerImgRect->setWidth(power_width);
circleImgRect->setHeight(circle_height);
circleImgRect->setWidth(circle_width);
update();
if(pressFlag&&(!isOut)) {
//鼠标按下且在圆圈内
emit dragMoveIn();
} else if(pressFlag&&isOut){
//鼠标按下且在圆圈上
emit dragMoveOn();
} else if((!pressFlag)&&(isOut)){
//鼠标在圆圈外且在图标外,则等同于鼠标释放。
emit dragRelease();
}
if(isOut&&(!pressFlag)) {
//鼠标在圆圈外且在图标外,确认关机。
emit dragOut();
}
}
}
void imageDragWidget::mousePressEvent(QMouseEvent *event)
{
currentMousePoint = event->pos();
if(powerContain() <= 0) {
//鼠标进入到图标内,则表示按下
pressFlag = true;
int power_width = powerImgRect->width();
int power_height = powerImgRect->height();
powerImg = power_haloImg;
powerImgRect->setHeight(power_height);
powerImgRect->setWidth(power_width);
update();
emit dragPress();
}
}

㈡ qt5 运行qml什么都不显示

在使用windeployqt工具发布的时候指定一下qml文件的路径试一下。如:

windeployqt -qmldir qml_path xxx.exe

㈢ 求助,qml与QT,使用QList<QObject*>数据交互问题

main()
{
int a=15;
float b=123.1234567;
double c=12345678.1234567;
char d='p';
printf("a=%d,%5d,%o,%x\n",a,a,a,a);
printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);
printf("c=%lf,%f,%8.4lf\n",c,c,c);
printf("d=%c,%8c\n",d,d);
}
本例第七行中以四种格式输出整型变量a的值,其中“%5d ”要求输出宽度为5,而a值为15只有两位故补三个空格。 第八行中以四种格式输出实型量b的值。其中“%f”和“%lf ”格式的输出相同,说明“l”符对“f”类型无影响。“%5.4lf”指定输出宽度为5,精度为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。第九行输出双精度实数,“%8.4lf ”由于指定精度为4位故截去了超过4位的部分。第十行输出字符量d,其中“%8c ”指定输出宽度为8故在输出字符p之前补加7个空格。
使用printf函数时还要注意一个问题,那就是输出表列中的求值顺序。不同的编译系统不一定相同,可以从左到右,也可从右到左。Turbo C是按从右到左进行的。请看下面两个例子:

㈣ 控制台的C++程序中,使用Qt的Qml,使之可以用Qml进行界面显示

如果你已经对QML比较熟悉了。那就没什么难的了。 2楼的回答就很完整了。你需要一个qml文件,和一个QDeclarativeView 对象。
QDeclarativeView的setSource接受一个qml文件的文件名。调用后就会自动创建你的qml文件中写的那个qml对象。
然后你就可以通过QDelcarativeView对象来操作你的qml对象了。自己写一下就很快学会了。
在你的pro文件中的QT中加上declarative 模块,不然你用不了QDeclarative

㈤ 怎么在Qt和QML之间建立信号槽链接

Qt Quick是一种脚本语言(类似于css)。Qt是开发平台,包含了Qt Quick的运行库。 Qt和Qt Quick的关系就像 “网页”与“样式表”的关系。 如果你的界面使用Qt Gui写的,那么用不了qml,因为qml的主要作用就是用来做画面的。 把Qt Gui程序当成一个C++程.

㈥ Qt和Qt Quick QML,

Qt Quick是一种脚本语言(类似于css)。Qt是开发平台,包含了Qt Quick的运行库。
Qt和Qt Quick的关系就像 “网页”与“样式表”的关系。
如果你的界面使用Qt Gui写的,那么用不了qml,因为qml的主要作用就是用来做画面的。
把Qt Gui程序当成一个C++程序来看。如果想显示qml做的画面,在Qt Gui程序中打开qml的画面,而不要打开QWidget那种画面即可。

㈦ 有没有linux操作系统里用的股票期货行情软件

摇钱树(GoldenTree)

股票行情分析软件:

摇钱树(GoldenTree)是一款免费的股票行情分析软件,主要是为linux平台上的使用而制作的,任何人都可以免费使用它。

有问题请联系replicon (大臭虫论坛 http://bigbug.xo51.com 网络博客http://hi..com/fatbsd)

软件主要的功能包括:

1,通过行情服务器查看行情信息

2,查看历史日线数据和分时数据

3,查看上交所和深交所每天发布的所有公告信息

4,支持离线查看数据

软件的运行环境和安装步骤:

摇钱树目前只有linux版本,只能运行在linux操作系统或者兼容的BSD系统。

并且需要安装Qt 3.3或以上版本。

本软件是绿色软件,只需要解压拷贝到你想放置的目录中就可以运行。

把所有文件解压缩到你指定的目录以后(如/yourpath)

进入程序目录,找到GoldenTree.sh文件,用文本编辑器把第二行修改成

export GoldenTree=/yourpath

并保存

然后把该文件权限设置成可执行就可以了(在字符模式下运行chmod +x /yourpath/GoldenTree.sh,或在kde中就右键属性-权限-可执行打勾)

(以上步骤只需要第一次使用时设置,当然如果你要把程序一东到别的目录下就要重新修改一下).

双击GoldenTree.sh就可以运行了

.大家可以安装后自己看看,比较好,提供一个下载地址g1a93.mail.163.com/a/s/goldentree.tar.bz2

㈧ 如何在Qt QML应用中开启cache使得应用更加快捷

http://blog.csdn.net/ubuntutouch/article/details/48520307
这里有个讲解,可以学习

㈨ Qt中使用QML和Listview的问题

其实QT 的编译器本身就能够编辑QML语言代码,你仔细看看。

㈩ qml与qt之间的关系是什么二者如何结合应用

qt是一个运行库。
qml是基于qt的一种脚本语言(类似css+javascript),如果想运行qml,必须先安装qt运行库。
编写qt应用程序需要有C++基础,为了让开发简单一些,发明一个qml语言来用。

热点内容
如何选基金好还是自选好 发布:2025-10-20 08:28:25 浏览:418
股票股利会影响股票价格吗 发布:2025-10-20 08:17:34 浏览:477
期货镍的一个点是多少 发布:2025-10-20 08:11:46 浏览:386
理财通定期收益怎么算 发布:2025-10-20 08:04:13 浏览:782
如何解决股市身份被冒用的问题 发布:2025-10-20 08:00:25 浏览:412
股市最高的一年多少钱 发布:2025-10-20 08:00:23 浏览:767
多少基金公司持有宁德时代 发布:2025-10-20 07:44:38 浏览:744
如何理解货币的两个基本职能科普 发布:2025-10-20 07:36:49 浏览:443
哪些基金没有c类 发布:2025-10-20 07:31:13 浏览:159
银行如何判定钱流入股市 发布:2025-10-20 06:51:50 浏览:436