QT學習篇 入門(二)

2022-08-15 09:54:23 字數 3860 閱讀 4384

庫存訂單介面:

(1)包括序號、訂單**、訂單名稱、產品**、產品型別、計畫加工數量、最晚完工日期。

(2)model增加臨時map,用於儲存庫存訂單。

(3)後台計算完成後,會將庫存訂單推送給前台,彈出該介面,若是人工確認的話,則使用者可以在該介面進行編輯,確認後進行插單排程;若是自動的話,則自動進行插單排程。

(4)插單排程成功後,「製造訂單表」中以「客戶關係」來區別哪些訂單是庫存訂單,「客戶關係」是工廠本身自己的都是庫存訂單。

標頭檔案:

#ifndef _cstockorderset_h

#define _cstockorderset_h

#include "ui_cstockorderset.h"

#include "qtgui/qdialog"

#include "qtgui/qstandarditemmodel"

#include //#include #include #include typedef struct stockorder

stockorder_t;

class ctablestockorder : public qdialog

;#endif

源cpp檔案

#include "ctablestockorder.h"

#include "qtgui/qgridlayout"

#include #include #include #include const int ordercolumncount = 8;

ctablestockorder::ctablestockorder(qwidget *parent, qt::wflags flags)

:qdialog(parent, flags),

m_pflag(false),

m_isautomation(false),

m_iblankid(0),

m_iinsertindex(0),

m_imaxkey(1)

ctablestockorder::~ctablestockorder()

void ctablestockorder::initlayout()

; stockorder_model = new qstandarditemmodel(this);

stockorder_model->setcolumncount(ordercolumncount);

for (int i = 0; i < ordercolumncount; i++)

connect(stockorder_model, signal(itemchanged(qstandarditem*)), this, slot(onitemchanged(qstandarditem* item)));

m_pordertableview->setmodel(stockorder_model);

m_pordertableview->setsortingenabled(true);

m_pordertableview->resizecolumnstocontents();

m_pordertableview->verticalheader()->setresizemode(qheaderview::fixed);

m_pordertableview->setalternatingrowcolors(true);

m_pordertableview->verticalheader()->setdefaultsectionsize(25);

if (m_isautomation)

else }

void ctablestockorder::setdata(const qmap& ordermode)

void ctablestockorder::setdelegate()

void ctablestockorder::setitemdata()

m_pflag = true;

}void ctablestockorder::insertblankentry()

void ctablestockorder::onitemchanged(qstandarditem* item)

int irow = item->index().row();

int icolumn = item->index().column();

int iid = stockorder_model->data(stockorder_model->index(irow, 0)).toint();

if (iid == m_iblankid) }

switch(icolumn)

case 1:

case 2:

case 3:

case 4:

case 5:

case 6:

case 7:

default:

break; }}

qmapctablestockorder::getdata()

void ctablestockorder::oncopyentry()

}void ctablestockorder::oninsertentry()

m_iinsertindex++;

m_pflag = true;

}void ctablestockorder::onremoveentry()

qlistlstrows;

qmap::iterator it = maprows.begin();

for (; it != maprows.end(); it++)

for (int i = 0; i < lstrows.size(); i++) }

void ctablestockorder::oncustomcontextmenurequested(const qpoint &pos)

//空白行不彈出右鍵選單

int iid = stockorder_model->data(stockorder_model->index(icurrentrow, 0)).touint();

if (iid == m_iblankid)

//獲取選中行

qitemselectionmodel *selections = m_pordertableview->selectionmodel();

qmodelindexlist selectedindex = selections->selectedrows();

if (!selectedindex.isempty())

}if (!bselected)

//若空白行被選中,則取消選中

/*foreach (qmodelindex index, selectedindex)

}*/m_pactioncopy->setenabled(true);

m_pactionremove->setenabled(true);

if (!m_mapclipboard.isempty())

else

}else

qmenu *menu = new qmenu;

menu->addaction(m_pactioncopy);

menu->addaction(m_pactioninsert);

menu->addaction(m_pactionremove);

menu->exec(qcursor::pos());

}void ctablestockorder::onok()

void ctablestockorder::oncancel()

效果圖

QT學習篇 入門(1)

第乙個為管理介面 1 安全庫存的設定,包括序號 物品 物品型別 最大庫存量 最小庫存量 最大庫存比率 最小庫存比率 2 計算頻率設定,包括 實時,定時 單位分為 分鐘 小時 天 來自globalpara表,該錶增加字段 3 庫存訂單確認方式,包括 自動,人工,來自globalpara表,該錶增加字段...

MySQL入門學習 二 入門篇

上篇講了如何安裝並測試mysql,環境建好後就可以繼續我們的學習了。本篇主要熟悉一寫常用命令。1 啟動mysql伺服器 實際上上篇已講到如何啟動mysql。兩種方法 一是用winmysqladmin,如果機器啟動時已自動執行,則可直接進入下一步操作。二是在dos方式下執行 c mysql bin m...

Qt學習之入門篇(基本操作)

qt的基類 qwidget 常用基類,空白的視窗 qmainwindow 在qwidget的基礎上新增了一些功能 qdialog qt常用工具類 qpainter 基本的畫家類 qpainter p this 定義乙個畫家qpen 畫筆類 可以定義畫筆並設定筆的顏色和粗細 qpen pen pen....