QMainwindow窗口

QMainwindow窗口

  • 菜單欄
    • 在二級菜單中輸入中文的方法
    • 給菜單欄添加相應的動作
    • 使用QMenu類的API方法添加菜單項
    • 分隔符也是QAction類
  • 工具欄
    • 添加工具欄
    • 在狀態欄中添加控件
    • 工具欄添加其他類型的工具
    • 工具欄的屬性
    • 添加多個工具欄
      • 使用窗口添加
      • 使用代碼添加
  • 狀態欄
    • 常用API
    • 在狀態欄顯示信息和清空顯示的信息
  • 停靠窗口 (Dock Widget)
    • 簡單使用
    • 屬性面板
    • 添加控件
      • 存在的問題
      • 解決辦法

菜單欄

只能有一個, 位于窗口的最上方

關于頂級菜單可以直接在UI窗口中雙擊, 直接輸入文本信息即可, 對應子菜單項也可以通過先雙擊在輸入的方式完成添加, 但是這種方式不支持中文的輸入。
在這里插入圖片描述
輸入文字,按回車確認。
在這里插入圖片描述
能創建二級菜單欄
在這里插入圖片描述

在二級菜單中輸入中文的方法

新建動作( action )
在這里插入圖片描述
在這里插入圖片描述
得到:
在這里插入圖片描述
將剛剛創建的動作拖到相應的菜單列表中去:
在這里插入圖片描述
在這里插入圖片描述

效果:
在這里插入圖片描述

給菜單欄添加相應的動作

在這里插入圖片描述

在這里插入圖片描述

其中,菜單欄對應的類為QAction
在這里插入圖片描述
在這里插入圖片描述
當用戶點擊了菜單欄中的某一個QAction時,triggered信號被發射出啦
在這里插入圖片描述

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDebug"
#include "QMessageBox"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);connect(ui->createprogect1,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下創建項目";QMessageBox::information(this, "提示框","成功創建項目",QMessageBox::Ok,QMessageBox::Save);});connect(ui->open_action,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下打開項目";QMessageBox::information(this, "提示框","成功打開項目",QMessageBox::Ok,QMessageBox::Save);});}MainWindow::~MainWindow()
{delete ui;
}

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

使用QMenu類的API方法添加菜單項

在這里插入圖片描述

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDebug"
#include "QMessageBox"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QAction* a1;a1 = ui->menu->addAction("打開老項目");connect(a1,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下打開項目";QMessageBox::information(this, "提示框","成功打開老項目",QMessageBox::Ok,QMessageBox::Save);});connect(ui->createprogect1,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下創建項目";QMessageBox::information(this, "提示框","成功創建項目",QMessageBox::Ok,QMessageBox::Save);});connect(ui->open_action,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下打開項目";QMessageBox::information(this, "提示框","成功打開項目",QMessageBox::Ok,QMessageBox::Save);});
}MainWindow::~MainWindow()
{delete ui;
}

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

分隔符也是QAction類

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

工具欄

可以有多個, 默認提供了一個, 窗口的上下左右都可以停靠

添加工具欄

在這里插入圖片描述
在這里插入圖片描述

在狀態欄中添加控件

可以使用之前的方法,在狀態欄中添加QAction控件

  1. 新建action
    在這里插入圖片描述
    將action拖到工具欄里面
    在這里插入圖片描述
    在這里插入圖片描述
    添加信號和槽函數
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDebug"
#include "QMessageBox"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QAction* a1;a1 = ui->menu->addAction("打開老項目");//菜單欄connect(a1,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下打開項目";QMessageBox::information(this, "提示框","成功打開老項目",QMessageBox::Ok,QMessageBox::Save);});connect(ui->createprogect1,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下創建項目";QMessageBox::information(this, "提示框","成功創建項目",QMessageBox::Ok,QMessageBox::Save);});connect(ui->open_action,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下打開項目";QMessageBox::information(this, "提示框","成功打開項目",QMessageBox::Ok,QMessageBox::Save);});//工具欄connect(ui->action_4,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下工具4";QMessageBox::information(this, "提示框","點擊了一下工具4",QMessageBox::Ok,QMessageBox::Save);});connect(ui->action_1,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下工具1";QMessageBox::information(this, "提示框","點擊了一下工具1",QMessageBox::Ok,QMessageBox::Save);});
}MainWindow::~MainWindow()
{delete ui;
}

效果:
在這里插入圖片描述
在這里插入圖片描述

工具欄添加其他類型的工具

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

// 在QMainWindow窗口中添加工具欄
void QMainWindow::addToolBar(Qt::ToolBarArea area, QToolBar *toolbar);
void QMainWindow::addToolBar(QToolBar *toolbar);
QToolBar *QMainWindow::addToolBar(const QString &title);// 將Qt控件放到工具欄中
// 工具欄類: QToolBar
// 添加的對象只要是QWidget或者啟子類都可以被添加
QAction *QToolBar::addWidget(QWidget *widget);// 添加QAction對象
QAction *QToolBar::addAction(const QString &text);
QAction *QToolBar::addAction(const QIcon &icon, const QString &text);// 添加分隔線
QAction *QToolBar::addSeparator()

在工具欄中,添加其他組件,并發送信號,調用槽函數的方法

工具欄的屬性

在這里插入圖片描述
看到了QToolBar的繼承關系

movable屬性值為True(并設置了上下左右都可以停靠)
在這里插入圖片描述

在這里插入圖片描述

設置圖標大小和設置顯示圖標還是文字
在這里插入圖片描述
對應的函數為
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

添加多個工具欄

使用窗口添加

在這里插入圖片描述
再將之前的QAction拖到右邊的工具欄里面去:
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

使用代碼添加

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDebug"
#include "QMessageBox"
#include "QLineEdit"
#include "QPushButton"
#include "QLineEdit"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QAction* a1;QAction* a2;QAction* a4;//QPushButton* b1= new QPushButton(this);// b1->setText("搜索按鈕");// QLineEdit* e1 =  new QLineEdit();a1 = ui->menu->addAction("打開老項目");//給工具欄添加單行輸入框ui->toolBar->addWidget(new QPushButton("搜索按鈕"));ui->toolBar->addWidget(new QLineEdit);a4 = ui->toolBar->addAction("工具4");//菜單欄connect(a1,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下打開項目";QMessageBox::information(this, "提示框","成功打開老項目",QMessageBox::Ok,QMessageBox::Save);});connect(ui->createprogect1,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下創建項目";QMessageBox::information(this, "提示框","成功創建項目",QMessageBox::Ok,QMessageBox::Save);});connect(ui->open_action,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下打開項目";QMessageBox::information(this, "提示框","成功打開項目",QMessageBox::Ok,QMessageBox::Save);});//工具欄connect(ui->action_4,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下工具4";QMessageBox::information(this, "提示框","點擊了一下工具4",QMessageBox::Ok,QMessageBox::Save);});connect(ui->action_1,&QAction::triggered,this,[=]{qDebug()<<"點擊了一下工具1";QMessageBox::information(this, "提示框","點擊了一下工具1",QMessageBox::Ok,QMessageBox::Save);});
//    connect(a2,&QAction::triggered,this,[=]{
//                qDebug()<<"請輸入搜索類容";
//                QMessageBox::information(this, "提示框",
//                                         "請輸入搜索類容",
//                                         QMessageBox::Ok,
//                                         QMessageBox::Save);
//            });
//    connect(b1,&QAction::triggered,this,[=]{
//                qDebug()<<"請輸入搜索類容";
//                QMessageBox::information(this, "提示框",
//                                         "請輸入搜索類容",
//                                         QMessageBox::Ok,
//                                         QMessageBox::Save);
//            });connect(a4,&QAction::triggered,this,[=]{qDebug()<<"點擊了工具4";QMessageBox::information(this, "提示框","點擊了工具4",QMessageBox::Ok,QMessageBox::Save);});//對于toolbar2的操作QAction* a5;a5 = ui->toolBar_2->addAction("新建項目");connect(a5,&QAction::triggered,this,[=]{qDebug()<<"點擊新建項目";QMessageBox::information(this, "提示框","點擊了新建項目",QMessageBox::Ok,QMessageBox::Save);});QPushButton *b5 = new QPushButton(this);b5->setText("^_^");//添加小控件ui->toolBar_2->addWidget(b5);connect(b5,&QPushButton::clicked,this,[=]{qDebug()<<"點擊了^_^";QMessageBox::information(this, "提示框","點擊了^_^",QMessageBox::Ok,QMessageBox::Save);});QLineEdit* l5 = new QLineEdit();//添加小控件ui->toolBar_2->addWidget(l5);connect(l5,&QLineEdit::editingFinished,this,[=]{qDebug()<<"完成輸入";QMessageBox::information(this, "提示框","完成了輸入",QMessageBox::Ok,QMessageBox::Save);});//下方的工具欄QToolBar* b6 = new QToolBar(this);QMainWindow::addToolBar(Qt::BottomToolBarArea,b6);QAction* a6;a6 = b6->addAction("新建項目");connect(a6,&QAction::triggered,this,[=]{qDebug()<<"點擊新建項目";QMessageBox::information(this, "提示框","點擊了新建項目",QMessageBox::Ok,QMessageBox::Save);});}MainWindow::~MainWindow()
{delete ui;
}

在下方添加了工具欄,并在工具欄中添加了QAction組件
在這里插入圖片描述

在下方的工具欄中,添加非QAction的組件(我使用的是QPushButton)

    //下方的工具欄QToolBar* b6 = new QToolBar(this);QMainWindow::addToolBar(Qt::BottomToolBarArea,b6);QAction* a6;a6 = b6->addAction("新建項目");connect(a6,&QAction::triggered,this,[=]{qDebug()<<"點擊新建項目";QMessageBox::information(this, "提示框","點擊了新建項目",QMessageBox::Ok,QMessageBox::Save);});QPushButton *pb6 = new QPushButton(this);pb6->setText("退出");//添加小控件b6->addWidget(pb6);connect(pb6,&QPushButton::clicked,this,[=]{qDebug()<<"點擊了退出";QMessageBox::information(this, "提示框","點擊了退出",QMessageBox::Ok,QMessageBox::Save);});

在這里插入圖片描述

狀態欄

只能有一個, 位于窗口最下方

需要在狀態欄中添加某些控件, 顯示某些屬性, 使用最多的就是添加標簽 QLabel

常用API

// 類型: QStatusBar
void QStatusBar::addWidget(QWidget *widget, int stretch = 0);[slot] void QStatusBar::clearMessage();
[slot] void QStatusBar::showMessage(const QString &message, int timeout = 0);

在這里插入圖片描述
在這里插入圖片描述

狀態欄出現了:右邊的三角形灰色點點

在這里插入圖片描述

在狀態欄中添加QLabel,并設置跳轉路徑

    //狀態欄QLabel* l7 = new QLabel();l7->setText(QStringLiteral("<a style='color: red; text-decoration: none ;font-size:20px' href = https://www.baidu.com><u>百度</u>"));ui->statusBar->addWidget(l7);connect(l7,&QLabel::linkActivated,this,[=](QString url){qDebug()<<"點擊了狀態欄label";QMessageBox::information(this, "提示框","點擊了狀態欄label",QMessageBox::Ok,QMessageBox::Save);QDesktopServices::openUrl(QUrl(url));});

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

QLabel超鏈接

再添加一個pushbutton按鈕

    //狀態欄QLabel* l7 = new QLabel();l7->setText(QStringLiteral("<a style='color: red; text-decoration: none ;font-size:20px' href = https://www.baidu.com><u>百度</u>"));ui->statusBar->addWidget(l7);connect(l7,&QLabel::linkActivated,this,[=](QString url){qDebug()<<"點擊了狀態欄label";QMessageBox::information(this, "提示框","點擊了狀態欄label",QMessageBox::Ok,QMessageBox::Save);QDesktopServices::openUrl(QUrl(url));});// 再添加按鈕QPushButton* button = new QPushButton("狀態欄的按鈕");ui->statusBar->addWidget(button);connect(button,&QPushButton::clicked,this,[=](){qDebug()<<"點擊了狀態欄label";QMessageBox::information(this, "提示框","點擊了狀態欄pushbutton",QMessageBox::Ok,QMessageBox::Save);});

在這里插入圖片描述
在這里插入圖片描述

在狀態欄顯示信息和清空顯示的信息

void MainWindow::on_pushButton_2_clicked()
{//在狀態欄顯示信息connect(ui->pushButton_2,&QPushButton::clicked,this,[=]{ui->statusBar->showMessage("在狀態欄顯示的信息------------",0);});}void MainWindow::on_pushButton_clicked()
{//清空狀態欄清空顯示的信息connect(ui->pushButton,&QPushButton::clicked,this,[=]{ui->statusBar->clearMessage();});
}

在這里插入圖片描述
顯示信息
在這里插入圖片描述

清空信息
在這里插入圖片描述

在項目開發中,不建議狀元欄顯示信息和狀態欄控件一起使用(存在覆蓋的問題)

停靠窗口 (Dock Widget)

可以有多個, 默認沒有提供, 窗口的上下左右都可以停靠

停靠窗口可以通過鼠標拖動停靠到窗口的上、下、左、右,或者浮動在窗口上方

在非QMainWindow類型的窗口中添加了停靠窗口, 那么這個窗口是不能移動和浮動的。

浮動窗口在工具欄中, 直接將其拖拽到UI界面上即可。

簡單使用

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

屬性面板

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
可以在屬性面板里面改,也可以使用函數修改。

添加控件

t拖拽進去就行
在這里插入圖片描述

然后調用信息窗口

void MainWindow::on_pushButton_3_clicked()
{connect(ui->pushButton_3,&QPushButton::clicked,this,[=]{QMessageBox::critical(ui->dockWidget, "標題", "內容", QMessageBox::Apply, QMessageBox::Reset);qDebug()<<"點擊了一下";});
}

在這里插入圖片描述
在這里插入圖片描述

存在的問題

點第一下:沒調用提示框
點第二下:
在這里插入圖片描述
在這里插入圖片描述
點第三下:

在這里插入圖片描述
在這里插入圖片描述
調用了兩下

點第4下:
在這里插入圖片描述
調用了三下。。。。。

解決辦法

在點擊控件的槽函數里面直接調用messagebox就行,不要再connect一次。。。。

void MainWindow::on_pushButton_3_clicked()
{qDebug()<<"點擊了一下";
//    connect(ui->pushButton_3,&QPushButton::clicked,this,[=]{
//        //QMessageBox::critical(ui->dockWidget, "標題", "內容", QMessageBox::Apply, QMessageBox::Reset);
//        QMessageBox::information(this, "提示框",
//                                 "點擊了^_^",
//                                 QMessageBox::Ok,
//                                 QMessageBox::Save);
//        qDebug()<<"調用了一次message";
//    });QMessageBox::information(this, "提示框","點擊了一下浮動窗口中的控件",QMessageBox::Ok,QMessageBox::Save);
}

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40575.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40575.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40575.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NeuralNLP-NeuralClassifier的使用記錄(一),訓練預測自己的【英文文本多分類】

NeuralNLP-NeuralClassifier的使用記錄&#xff0c;訓練預測自己的英文文本多分類 NeuralNLP-NeuralClassifier是騰訊開發的一個多層多分類應用工具&#xff0c;支持的任務包括&#xff0c;文本分類中的二分類、多分類、多標簽&#xff0c;以及層次多標簽分類。支持的文本編碼…

C語言庫函數之 qsort 講解、使用及模擬實現

引入 我們在學習排序的時候&#xff0c;第一個接觸到的應該都是冒泡排序&#xff0c;我們先來復習一下冒泡排序的代碼&#xff0c;來作為一個鋪墊和引入。 代碼如下&#xff1a; #include<stdio.h>void bubble_sort(int *arr, int sz) {int i 0;for (i 0; i < sz…

面試熱題(最大子數組和)

給你一個整數數組 nums &#xff0c;請你找出一個具有最大和的連續子數組&#xff08;子數組最少包含一個元素&#xff09;&#xff0c;返回其最大和。 子數組 是數組中的一個連續部分。 輸入&#xff1a;nums [-2,1,-3,4,-1,2,1,-5,4] 輸出&#xff1a;6 解釋&#xff1a;連續…

免費批量ppt轉pdf?一個方法教你完美轉換

隨著科技的不斷發展&#xff0c;電子文檔的使用越來越普遍。在商業、教育和個人領域&#xff0c;我們經常需要將PPT文件轉換為PDF格式&#xff0c;以便更方便地共享和存檔。幸運的是&#xff0c;現在有許多在線工具和軟件可以幫助我們輕松地完成免費批量ppt轉pdf。下面將介紹一…

【Linux】模擬實現linux的shell

#include <stdio.h> #include <unistd.h> #include <string.h> #include <stdlib.h> #include <sys/wait.h> #include <sys/types.h> #define NUM 1024 #define SIZE 32 #define SEP " " int main() {//保存輸入后的字符串char …

Blazor前后端框架Known-V1.2.12

V1.2.12 Known是基于C#和Blazor開發的前后端分離快速開發框架&#xff0c;開箱即用&#xff0c;跨平臺&#xff0c;一處代碼&#xff0c;多處運行。 Gitee&#xff1a; https://gitee.com/known/KnownGithub&#xff1a;https://github.com/known/Known 概述 基于C#和Blazo…

大文件切片上傳

創建組件&#xff1a;創建一個組件用于處理文件上傳&#xff0c;命名為Upload.vue。 <template><div><input type"file" change"handleFileChange" /><button click"startUpload">開始上傳</button></div> …

Pyinstaller 打包 django 項目如何將命令行參數加入?

起因 Pyinstaller 打包 django 項目&#xff0c;打包成 manage.exe 后用命令行 cmd manage.exe runserver 0.0.0.0:8001 --noreload 來運行感覺很不方便。 希望能夠直接把命令行參數也打包進去&#xff0c;直接運行 exe 。我走了些彎路&#xff0c;但最終實現了。 彎路 我看…

Redis之刪除策略

文章目錄 前言一、過期數據二、數據刪除策略2.1定時刪除2.2惰性刪除2.3 定期刪除2.4 刪除策略比對 三、逐出算法3.1影響數據逐出的相關配置 總結 前言 Redis的常用刪除策略 一、過期數據 Redis是一種內存級數據庫&#xff0c;所有數據均存放在內存中&#xff0c;內存中的數據可…

web基礎入門和PHP語言基礎入門 一

web基礎入門和php語言基礎入門 一 WEB簡介與HTTP入門WEB簡介HTTP 簡介HTTP 請求報文&#xff1a;請求方法&#xff1a;請求頭部&#xff1a;&#xff08;常見的請求頭&#xff09;HTTP 響應報文&#xff1a;響應狀態碼&#xff1a;Cookie HTML入門學習什么是HTML什么是標記語言…

【深入了解pytorch】PyTorch擴展:如何使用PyTorch的擴展功能

【深入了解pytorch】PyTorch擴展:如何使用PyTorch的擴展功能 PyTorch擴展:展示如何使用PyTorch的擴展功能1. 自定義損失函數2. 自定義數據加載器3. 自定義優化器總結PyTorch擴展:展示如何使用PyTorch的擴展功能 PyTorch作為一個開源的深度學習框架,在研究和應用領域廣受歡…

PHP入門基礎教程 - 專欄導讀

&#x1f3c6;作者簡介&#xff0c;黑夜開發者&#xff0c;全棧領域新星創作者?&#xff0c;CSDN博客專家&#xff0c;阿里云社區專家博主&#xff0c;2023年6月CSDN上海賽道top4。 &#x1f3c6;數年電商行業從業經驗&#xff0c;歷任核心研發工程師&#xff0c;項目技術負責…

【LeetCode 算法】Find And Replace in String 字符串中的查找與替換-線性模擬

文章目錄 Find And Replace in String 字符串中的查找與替換問題描述&#xff1a;分析代碼線性模擬 Tag Find And Replace in String 字符串中的查找與替換 問題描述&#xff1a; 你會得到一個字符串 s (索引從 0 開始)&#xff0c;你必須對它執行 k 個替換操作。替換操作以三…

Floyd算法

正如我們所知道的&#xff0c;Floyd算法用于求最短路徑。Floyd算法可以說是Warshall算法的擴展&#xff0c;三個for循環就可以解決問題&#xff0c;所以它的時間復雜度為O(n^3)。 Floyd算法的基本思想如下&#xff1a;從任意節點A到任意節點B的最短路徑不外乎2種可能&#xff…

openGauss學習筆記-42 openGauss 高級數據管理-觸發器

文章目錄 openGauss學習筆記-42 openGauss 高級數據管理-觸發器42.1 語法格式42.2 參數說明42.3 示例 openGauss學習筆記-42 openGauss 高級數據管理-觸發器 觸發器會在指定的數據庫事件發生時自動執行函數。 42.1 語法格式 創建觸發器 CREATE TRIGGER trigger_name { BEFORE…

Swagger-ui在idea中的使用

1.添加依賴 <!--添加swagger2相關概念--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><!--添加swagger-ui相關功能--><de…

Linux學習之基本指令一

在學習Linux下的基本指令之前首先大家要知道Linux下一切皆目錄&#xff0c;我們的操作基本上也都是對目錄的操作&#xff0c;這里我們可以聯想我們是如何在windows上是如何操作的&#xff0c;只是形式上不同&#xff0c;類比學習更容易理解。 目錄 01.ls指令 02. pwd命令 0…

SpringBoot登錄、退出、獲取用戶信息的session處理

1、登錄方法&#xff1a;login PostMapping("/user/login")public ResponseVo<User> login(Valid RequestBody UserLoginForm userLoginForm,HttpSession session) {ResponseVo<User> userResponseVo userService.login(userLoginForm.getUsername(), …

sql A表(含有部分B表字段) 向B表插入A表數據

今天遇到一個數據庫插入問題 向表中插入 生產狀態 為 2 的數據 但生產狀態為改為12 的所有數據 查看網上的評論 參考 insert into b (a,b,c) select ‘1’,‘2’,c from a where a1 這樣就可以a,b字段是插入指定某個值,而C字段則用表a的c字段. 最后解決了。忽然想起原來也有這…

實現Python對.json文件內容的讀取和寫入

要實現Python對.json文件內容的讀取和寫入&#xff0c;可以使用json庫。 首先&#xff0c;需要安裝json庫&#xff1a; pip install json 然后&#xff0c;可以編寫以下代碼來實現對.json文件內容的讀取和寫入&#xff1a; import json# 讀取json文件 with open(data.json, …