优化界面样式;修复符号文件路径不支持非ASCII字符的问题;增加对elf格式的支持;添加未选择符号文件的警告框;修复连接错误导致闪退的问题;版本号更新为1.0.1
|
@ -35,3 +35,6 @@ RC_ICONS = icon.ico
|
||||||
qnx: target.path = /tmp/$${TARGET}/bin
|
qnx: target.path = /tmp/$${TARGET}/bin
|
||||||
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
|
RESOURCES += \
|
||||||
|
res.qrc
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE QtCreatorProject>
|
<!DOCTYPE QtCreatorProject>
|
||||||
<!-- Written by QtCreator 4.11.0, 2022-01-02T00:24:35. -->
|
<!-- Written by QtCreator 4.11.0, 2022-01-25T15:56:21. -->
|
||||||
<qtcreator>
|
<qtcreator>
|
||||||
<data>
|
<data>
|
||||||
<variable>EnvironmentId</variable>
|
<variable>EnvironmentId</variable>
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.9.9 MinGW 32bit</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.9.9 MinGW 32bit</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.9.9 MinGW 32bit</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.9.9 MinGW 32bit</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.599.win32_mingw53_kit</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.599.win32_mingw53_kit</value>
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||||
|
@ -299,7 +299,7 @@
|
||||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
|
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
|
||||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">F:/Sketches/Qt/LinkScope/build-LinkScope-Desktop_Qt_5_9_9_MinGW_32bit-Debug</value>
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">F:/Sketches/Qt/LinkScope/build-LinkScope-Desktop_Qt_5_9_9_MinGW_32bit-Release</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
|
|
|
@ -76,8 +76,6 @@
|
||||||
|
|
||||||
* 将采样频率提升至约1kHz
|
* 将采样频率提升至约1kHz
|
||||||
|
|
||||||
* 优化界面样式
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 运行过程简介
|
## 运行过程简介
|
||||||
|
|
|
@ -34,7 +34,7 @@ void GraphWindow::paintGraph(QWidget *canvas)
|
||||||
QPainter painter(canvas); //画笔
|
QPainter painter(canvas); //画笔
|
||||||
|
|
||||||
painter.setBrush(QBrush(QColor(Qt::white)));//填充背景
|
painter.setBrush(QBrush(QColor(Qt::white)));//填充背景
|
||||||
painter.drawRect(posx,posy,wid,hei);
|
painter.drawRect(posx,posy,wid-1,hei-1);
|
||||||
|
|
||||||
//绘制标记线
|
//绘制标记线
|
||||||
painter.setPen(QPen(QColor(184,184,184),2,Qt::DotLine));
|
painter.setPen(QPen(QColor(184,184,184),2,Qt::DotLine));
|
||||||
|
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 83 KiB |
|
@ -8,6 +8,8 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
setWindowTitle("LinkScope");
|
setWindowTitle("LinkScope");
|
||||||
|
|
||||||
|
setStylesheet();//设置全局样式表
|
||||||
|
|
||||||
graph=new GraphWindow();//创建并显示绘图窗口
|
graph=new GraphWindow();//创建并显示绘图窗口
|
||||||
graph->setVarList(&varList);
|
graph->setVarList(&varList);
|
||||||
graph->show();
|
graph->show();
|
||||||
|
@ -163,7 +165,16 @@ void MainWindow::slotTableTimerTrig()
|
||||||
//连接按钮点击,触发连接状态切换
|
//连接按钮点击,触发连接状态切换
|
||||||
void MainWindow::on_bt_conn_clicked()
|
void MainWindow::on_bt_conn_clicked()
|
||||||
{
|
{
|
||||||
setConnState(!connected);
|
if(!connected && !axfChosen)//用户未选择axf文件就点击连接按钮
|
||||||
|
{
|
||||||
|
QMessageBox msgBox;
|
||||||
|
msgBox.setWindowTitle("警告");
|
||||||
|
msgBox.setText("还未选择符号文件,连接后仅能使用绝对地址查看变量,是否继续连接?");
|
||||||
|
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
|
||||||
|
if(msgBox.exec()!=QMessageBox::Ok)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setConnState(!connected);//切换连接状态
|
||||||
}
|
}
|
||||||
|
|
||||||
//设置连接状态(参数true表示进行连接,false表示断开连接)
|
//设置连接状态(参数true表示进行连接,false表示断开连接)
|
||||||
|
@ -215,6 +226,8 @@ void MainWindow::setOCDState(bool connect)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if(ocdProcess->state()==QProcess::NotRunning)
|
||||||
|
return;
|
||||||
QProcess killProcess(0);//创建新进程,用taskkill强行结束ocd进程
|
QProcess killProcess(0);//创建新进程,用taskkill强行结束ocd进程
|
||||||
killProcess.setProgram("taskkill");
|
killProcess.setProgram("taskkill");
|
||||||
killProcess.setNativeArguments(QString("/F /PID %1").arg(ocdProcess->pid()->dwProcessId));
|
killProcess.setNativeArguments(QString("/F /PID %1").arg(ocdProcess->pid()->dwProcessId));
|
||||||
|
@ -229,6 +242,7 @@ void MainWindow::setGDBState(bool run)
|
||||||
if(run)
|
if(run)
|
||||||
{
|
{
|
||||||
gdbProcess->setProgram(QCoreApplication::applicationDirPath()+"/gdb/gdb.exe");//设置程序路径
|
gdbProcess->setProgram(QCoreApplication::applicationDirPath()+"/gdb/gdb.exe");//设置程序路径
|
||||||
|
gdbProcess->setWorkingDirectory(QCoreApplication::applicationDirPath()+"/gdb");//设置工作路径
|
||||||
gdbProcess->setNativeArguments("-q");//设置gdb在安静模式下打开
|
gdbProcess->setNativeArguments("-q");//设置gdb在安静模式下打开
|
||||||
gdbProcess->start();
|
gdbProcess->start();
|
||||||
}
|
}
|
||||||
|
@ -241,17 +255,23 @@ void MainWindow::setGDBState(bool run)
|
||||||
//参数true:gdb连接到本机3333端口,设置调试参数;参数false:断开gdb连接
|
//参数true:gdb连接到本机3333端口,设置调试参数;参数false:断开gdb连接
|
||||||
void MainWindow::setGDBConnState(bool connect)
|
void MainWindow::setGDBConnState(bool connect)
|
||||||
{
|
{
|
||||||
|
QString tmpFilePath=QCoreApplication::applicationDirPath()+"/gdb/tmp";//临时符号文件路径
|
||||||
if(connect)
|
if(connect)
|
||||||
{
|
{
|
||||||
gdbProcess->write("target remote localhost:3333\r\n");//连接到3333端口
|
gdbProcess->write("target remote localhost:3333\r\n");//连接到3333端口
|
||||||
gdbProcess->write(QString("symbol-file %1 \r\n").arg(ui->txt_axf_path->text()).toStdString().c_str());//设置符号文件为所选的axf文件
|
QFile::remove(tmpFilePath);//确保删除当前的临时文件
|
||||||
|
QFile::copy(ui->txt_axf_path->text(),tmpFilePath);//将所选符号文件复制为临时文件
|
||||||
|
gdbProcess->write(QString("symbol-file %1 \r\n").arg("tmp").toStdString().c_str());//设置符号文件
|
||||||
gdbProcess->write("set confirm off\r\n");//设置不要手动确认
|
gdbProcess->write("set confirm off\r\n");//设置不要手动确认
|
||||||
gdbProcess->write("set print pretty on\r\n");//设置结构体规范打印
|
gdbProcess->write("set print pretty on\r\n");//设置结构体规范打印
|
||||||
setGDBDispList();//向gdb发送当前的变量列表
|
setGDBDispList();//向gdb发送当前的变量列表
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gdbProcess->write("disconnect\r\n");
|
gdbProcess->write("symbol-file\r\n");//取消符号文件
|
||||||
|
gdbProcess->write("disconnect\r\n");//断开gdb连接
|
||||||
|
sleep(10);//确保对临时文件取消占用
|
||||||
|
QFile::remove(tmpFilePath);//删除复制过来的临时文件
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -335,7 +355,7 @@ void MainWindow::on_bt_set_axf_clicked()
|
||||||
QFileDialog *fileDialog = new QFileDialog(this);//弹出文件选择框
|
QFileDialog *fileDialog = new QFileDialog(this);//弹出文件选择框
|
||||||
fileDialog->setWindowTitle(QStringLiteral("选中文件"));
|
fileDialog->setWindowTitle(QStringLiteral("选中文件"));
|
||||||
fileDialog->setDirectory(".");
|
fileDialog->setDirectory(".");
|
||||||
fileDialog->setNameFilter(tr("AXF File (*.axf)"));//设置文件过滤器为axf
|
fileDialog->setNameFilter(tr("AXF/ELF File (*.axf *.elf)"));//设置文件过滤器为axf/elf
|
||||||
fileDialog->setFileMode(QFileDialog::ExistingFile);
|
fileDialog->setFileMode(QFileDialog::ExistingFile);
|
||||||
fileDialog->setViewMode(QFileDialog::Detail);
|
fileDialog->setViewMode(QFileDialog::Detail);
|
||||||
if(fileDialog->exec())
|
if(fileDialog->exec())
|
||||||
|
@ -344,6 +364,7 @@ void MainWindow::on_bt_set_axf_clicked()
|
||||||
QString fileName=fileList.at(0);
|
QString fileName=fileList.at(0);
|
||||||
QFileInfo info(fileName);
|
QFileInfo info(fileName);
|
||||||
ui->txt_axf_path->setText(info.filePath());
|
ui->txt_axf_path->setText(info.filePath());
|
||||||
|
axfChosen=true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,6 +435,7 @@ void MainWindow::saveToFile(const QString &filename)
|
||||||
settings.beginGroup("Global");//写入全局配置
|
settings.beginGroup("Global");//写入全局配置
|
||||||
settings.setValue("Interface",ui->cb_interface->currentText());
|
settings.setValue("Interface",ui->cb_interface->currentText());
|
||||||
settings.setValue("Target",ui->cb_target->currentText());
|
settings.setValue("Target",ui->cb_target->currentText());
|
||||||
|
settings.setValue("AxfChosen",axfChosen);
|
||||||
settings.setValue("AxfPath",ui->txt_axf_path->text());
|
settings.setValue("AxfPath",ui->txt_axf_path->text());
|
||||||
settings.setValue("VarNum",varList.size());
|
settings.setValue("VarNum",varList.size());
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
|
@ -438,6 +460,7 @@ void MainWindow::loadFromFile(const QString &filename)
|
||||||
settings.beginGroup("Global");//读取全局配置
|
settings.beginGroup("Global");//读取全局配置
|
||||||
ui->cb_interface->setCurrentText(settings.value("Interface").toString());
|
ui->cb_interface->setCurrentText(settings.value("Interface").toString());
|
||||||
ui->cb_target->setCurrentText(settings.value("Target").toString());
|
ui->cb_target->setCurrentText(settings.value("Target").toString());
|
||||||
|
axfChosen=settings.value("AxfChosen",true).toBool();
|
||||||
ui->txt_axf_path->setText(settings.value("AxfPath").toString());
|
ui->txt_axf_path->setText(settings.value("AxfPath").toString());
|
||||||
int varNum=settings.value("VarNum").toInt();
|
int varNum=settings.value("VarNum").toInt();
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
|
@ -613,7 +636,7 @@ void MainWindow::on_action_export_triggered()
|
||||||
void MainWindow::on_action_about_triggered()
|
void MainWindow::on_action_about_triggered()
|
||||||
{
|
{
|
||||||
//弹出messagebox显示关于信息
|
//弹出messagebox显示关于信息
|
||||||
QString str="LinkScope 版本号:V1.0.0\n\n"
|
QString str="LinkScope 版本号:V1.0.1\n\n"
|
||||||
"Developed by Skythinker";
|
"Developed by Skythinker";
|
||||||
QMessageBox box;
|
QMessageBox box;
|
||||||
box.setWindowTitle("关于 LinkScope");
|
box.setWindowTitle("关于 LinkScope");
|
||||||
|
@ -665,3 +688,11 @@ void MainWindow::on_action_homepage_triggered()
|
||||||
{
|
{
|
||||||
QDesktopServices::openUrl(QUrl("https://gitee.com/skythinker/link-scope"));//打开仓库主页
|
QDesktopServices::openUrl(QUrl("https://gitee.com/skythinker/link-scope"));//打开仓库主页
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//设置QSS全局样式
|
||||||
|
void MainWindow::setStylesheet()
|
||||||
|
{
|
||||||
|
QFile qss(":/qss/light-blue.qss");
|
||||||
|
if(qss.open(QIODevice::ReadOnly))
|
||||||
|
qApp->setStyleSheet(QLatin1String(qss.readAll()));
|
||||||
|
}
|
||||||
|
|
|
@ -63,6 +63,8 @@ private:
|
||||||
QElapsedTimer *stampTimer;//时间戳定时器指针
|
QElapsedTimer *stampTimer;//时间戳定时器指针
|
||||||
GraphWindow *graph;//绘图窗口指针
|
GraphWindow *graph;//绘图窗口指针
|
||||||
bool isWatchProcessing=false;//标记当前是否正在处理变量值查看
|
bool isWatchProcessing=false;//标记当前是否正在处理变量值查看
|
||||||
|
bool axfChosen=false;//是否已经选择了axf文件
|
||||||
|
void setStylesheet();
|
||||||
void setConnState(bool connect);
|
void setConnState(bool connect);
|
||||||
void setOCDState(bool connect);
|
void setOCDState(bool connect);
|
||||||
void setGDBState(bool run);
|
void setGDBState(bool run);
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>918</width>
|
<width>893</width>
|
||||||
<height>727</height>
|
<height>680</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -87,14 +87,7 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_3">
|
<widget class="QLabel" name="label_3">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Axf文件路径</string>
|
<string>符号文件(AXF/ELF)</string>
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="txt_axf_path">
|
|
||||||
<property name="text">
|
|
||||||
<string>请选择axf文件</string>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -111,10 +104,17 @@
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="txt_axf_path">
|
||||||
|
<property name="text">
|
||||||
|
<string>请设置符号文件</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="bt_set_axf">
|
<widget class="QPushButton" name="bt_set_axf">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>设置Axf路径</string>
|
<string>设置符号文件</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -128,7 +128,7 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>918</width>
|
<width>893</width>
|
||||||
<height>29</height>
|
<height>29</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
@ -192,6 +192,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>刷新连接配置</string>
|
<string>刷新连接配置</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>刷新连接配置</string>
|
||||||
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="action_homepage">
|
<action name="action_homepage">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
|
|
@ -0,0 +1,155 @@
|
||||||
|
QMainWindow,QDialog{
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
*:disabled{
|
||||||
|
background: rgb(221, 221, 221);
|
||||||
|
}
|
||||||
|
|
||||||
|
QGroupBox{
|
||||||
|
border: 2px solid rgb(85, 170, 255);
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 15px 5px 3px 5px;
|
||||||
|
color: rgb(85, 170, 255);
|
||||||
|
font-size: 9pt;
|
||||||
|
font-family: "Microsoft YaHei UI";
|
||||||
|
font: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
QGroupBox::title{
|
||||||
|
subcontrol-origin: margin;
|
||||||
|
subcontrol-position: top left;
|
||||||
|
border-top: 2px solid rgb(85, 170, 255);
|
||||||
|
border-left: 2px solid rgb(85, 170, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
QLineEdit{
|
||||||
|
border: 2px solid rgb(85, 170, 255);
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton{
|
||||||
|
border: 2px solid rgb(85, 170, 255);
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: white;
|
||||||
|
padding: 3px 5px 3px 5px;
|
||||||
|
color: rgb(85, 170, 255);
|
||||||
|
font-size: 9pt;
|
||||||
|
font-family: "Microsoft YaHei UI";
|
||||||
|
font: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton:hover{
|
||||||
|
border: 2px solid white;
|
||||||
|
background-color: rgb(85, 170, 255);
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
QRadioButton:indicator{
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QRadioButton:indicator:unchecked{
|
||||||
|
image: url(:/qss/qss-img/light-blue-radiobutton-unchecked.png)
|
||||||
|
}
|
||||||
|
|
||||||
|
QRadioButton:indicator:checked{
|
||||||
|
image: url(:/qss/qss-img/light-blue-radiobutton-checked.png)
|
||||||
|
}
|
||||||
|
|
||||||
|
QCheckBox:indicator{
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QCheckBox:indicator:unchecked{
|
||||||
|
image: url(:/qss/qss-img/light-blue-checkbox-unchecked.png)
|
||||||
|
}
|
||||||
|
|
||||||
|
QCheckBox:indicator:checked{
|
||||||
|
image: url(:/qss/qss-img/light-blue-checkbox-checked.png)
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox{
|
||||||
|
border: 2px solid rgb(85, 170, 255);
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: white;
|
||||||
|
min-width: 80px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox:drop-down{
|
||||||
|
subcontrol-origin: padding;
|
||||||
|
subcontrol-position: top right;
|
||||||
|
width: 15px;
|
||||||
|
margin: 2px;
|
||||||
|
padding-left: 2px;
|
||||||
|
border-left: 2px solid rgb(85, 170, 255);
|
||||||
|
image: url(:/qss/qss-img/light-blue-downarrow.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox:drop-down:on{
|
||||||
|
image: url(:/qss/qss-img/light-blue-uparrow.png)
|
||||||
|
}
|
||||||
|
|
||||||
|
QSpinBox,QDoubleSpinBox{
|
||||||
|
border: 2px solid rgb(85, 170, 255);
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSpinBox:up-button,QSpinBox:down-button,QDoubleSpinBox:up-button,QDoubleSpinBox:down-button{
|
||||||
|
width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider:groove:horizontal{
|
||||||
|
height: 0px;
|
||||||
|
border: 3px solid rgba(85, 170, 255,150);
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::handle:horizontal{
|
||||||
|
width: 15px;
|
||||||
|
margin: -10px 0px;
|
||||||
|
border: 2px solid rgb(85, 170, 255);
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenuBar{
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenuBar:item{
|
||||||
|
padding: 5px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenuBar:item:selected{
|
||||||
|
border-bottom: 3px solid rgb(85, 170, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu{
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu:item{
|
||||||
|
background-color: white;
|
||||||
|
padding: 8px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu::item:selected{
|
||||||
|
background-color: rgb(85, 170, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu::separator{
|
||||||
|
height: 0px;
|
||||||
|
border: 1px solid rgb(85, 170, 255);
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTableView{
|
||||||
|
border: 2px solid rgb(85, 170, 255);
|
||||||
|
}
|
After Width: | Height: | Size: 830 B |
After Width: | Height: | Size: 360 B |
After Width: | Height: | Size: 745 B |
After Width: | Height: | Size: 885 B |
After Width: | Height: | Size: 877 B |
After Width: | Height: | Size: 829 B |
|
@ -0,0 +1,11 @@
|
||||||
|
<RCC>
|
||||||
|
<qresource prefix="/">
|
||||||
|
<file>qss/light-blue.qss</file>
|
||||||
|
<file>qss/qss-img/light-blue-checkbox-checked.png</file>
|
||||||
|
<file>qss/qss-img/light-blue-checkbox-unchecked.png</file>
|
||||||
|
<file>qss/qss-img/light-blue-downarrow.png</file>
|
||||||
|
<file>qss/qss-img/light-blue-radiobutton-checked.png</file>
|
||||||
|
<file>qss/qss-img/light-blue-radiobutton-unchecked.png</file>
|
||||||
|
<file>qss/qss-img/light-blue-uparrow.png</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|