Java培訓(xùn)Java與自學(xué)Java的差距
培訓(xùn)Java與自學(xué)Java的差距
我以前也是自學(xué)Java,在一家公司跟著別人學(xué),以前是別人眼中的菜鳥,現(xiàn)
在是別人眼中的大神,Java很簡單的,貴在堅(jiān)持和多練,沒必要花那培訓(xùn)錢。如果真的要去學(xué)的話,
選擇Java培訓(xùn)機(jī)構(gòu)要注意這兩點(diǎn)基本上就能避免一些坑:
1. 老師沒有正經(jīng)公司工作經(jīng)歷,或者沒有已經(jīng)在線上正常運(yùn)轉(zhuǎn)的產(chǎn)品。一
些所謂培訓(xùn)班的老師水平往往比較一般,甚至還有培訓(xùn)出來后又接著培訓(xùn)別人的。
2、是不是會(huì)承諾幫你找到工作,要找到好的工作,不是靠別人給你保證的
,還是要靠自己提升能力。
建議多自己學(xué)習(xí)加上找些好的代碼主動(dòng)學(xué)習(xí)。例如github,多練習(xí)網(wǎng)上很多
網(wǎng)站里真正好的代碼。作為Java工程師,可以多看看spring文檔,看看很多已經(jīng)成熟的框架,深入去體會(huì)。另外,學(xué)軟件等等**好還是自己多學(xué),找點(diǎn)
視頻教程之類,也省點(diǎn)錢。
數(shù)據(jù)庫關(guān)鍵技術(shù)
.數(shù)據(jù)庫關(guān)鍵技術(shù)
-
01Mysql 基礎(chǔ)
-
1.Mysql的安裝和使用
-
2.圖解Mysql程序結(jié)構(gòu)
-
3.Mysql服務(wù)器的配置
-
4.Mysql 客戶端使用
-
5.用戶權(quán)限管理
-
6.Mysql數(shù)據(jù)庫的使用
-
02SQL基礎(chǔ)
-
1.SQL語句的三種類型
-
2.DML、DDL、DCL的應(yīng)用
-
3.數(shù)據(jù)處理
-
4.子查詢
-
5.創(chuàng)建和管理表
-
6.約束與分頁
-
03JDBC
-
04DBUtils
-
1.使用QueryRunner
-
2.可插拔式結(jié)果集處理
-
3.批量處理
-
4.大數(shù)據(jù)結(jié)果集處理
-
5.自定義結(jié)果集處理
-
6.利用DBUtils編寫通用 DAO
qml布局-描點(diǎn)布局anchors
>
上一章我們介紹了 QML 中用于定位的幾種元素,被稱為定位器。除了定位器,QML 還提供了另外一種用于布局的機(jī)制。我們將這種機(jī)制成為錨點(diǎn)(anchor)。錨點(diǎn)允許我們靈活地設(shè)置兩個(gè)元素的相對(duì)位置。它使兩個(gè)元素之間形成一種類似于錨的關(guān)系,也就是兩個(gè)元素之間形成一個(gè)固定點(diǎn)。錨點(diǎn)的行為類似于一種鏈接,它要比單純地計(jì)算坐標(biāo)改變更強(qiáng)。由于錨點(diǎn)描述的是相對(duì)位置,所以在使用錨點(diǎn)時(shí),我們必須指定兩個(gè)元素,聲明其中一個(gè)元素相對(duì)于另外一個(gè)元素。錨點(diǎn)是Item元素的基本屬性之一,因而適用于所有 QML 可視元素。
一個(gè)元素有 6 個(gè)主要的錨點(diǎn)的定位線,如下圖所示:
QML 錨點(diǎn)
這 6 個(gè)定位線分別是:top、bottom、left、right、horizontalCenter和verticalCenter。對(duì)于Text元素,還有一個(gè)baseline錨點(diǎn)。每一個(gè)錨點(diǎn)定位線都可以結(jié)合一個(gè)偏移的數(shù)值。其中,top、bottom、left和right稱為外邊框;horizontalCenter、verticalCenter和baseline稱為偏移量。
下面,我們使用例子來說明這些錨點(diǎn)的使用。首先,我們需要重新定義一下上一章使用過的BlueRectangle組件:
BlueRectangle
import QtQuick 2.0
Rectangle {
width: 48
height: 48
color: “blue”
border.color: Qt.lighter(color)
MouseArea {
anchors.fill: parent
drag.target: parent
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
import QtQuick 2.0
Rectangle {
width: 48
height: 48
color: “blue”
border.color: Qt.lighter(color)
MouseArea {
anchors.fill: parent
drag.target: parent
}
}
簡單來說,我們在BlueRectangle**后增加了一個(gè)MouseArea組件。前面的章節(jié)中,我們簡單使用了這個(gè)組件。顧名思義,這是一個(gè)用于處理鼠標(biāo)事件的組件。之前我們使用了它處理鼠標(biāo)點(diǎn)擊事件。這里,我們使用了其拖動(dòng)事件。anchors.fill: parent一行的含義馬上就會(huì)解釋;drag.target: parent則說明拖動(dòng)目標(biāo)是parent。我們的拖動(dòng)對(duì)象是MouseArea的父組件,也就是BlueRectangle組件。
接下來看**個(gè)例子:
QML anchors.fill
代碼如下:
import QtQuick 2.0
Rectangle {
id: root
width: 220
height: 220
color: “black”
GreenRectangle {
x: 10
y: 10
width: 100
height: 100
BlueRectangle {
width: 12
anchors.fill: parent
anchors.margins: 8
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import QtQuick 2.0
Rectangle {
id: root
width: 220
height: 220
color: “black”
GreenRectangle {
x: 10
y: 10
width: 100
height: 100
BlueRectangle {
width: 12
anchors.fill: parent
anchors.margins: 8
}
}
}
在這個(gè)例子中,我們使用anchors.fill設(shè)置內(nèi)部藍(lán)色矩形的錨點(diǎn)為填充(fill),填充的目的對(duì)象是parent;填充邊距是 8px。注意,盡管我們設(shè)置了藍(lán)色矩形寬度為 12px,但是因?yàn)殄^點(diǎn)的優(yōu)先級(jí)要高于寬度屬性設(shè)置,所以藍(lán)色矩形的實(shí)際寬度是 100px – 8px – 8px = 84px。
第二個(gè)例子:
QML anchors.left
代碼如下:
import QtQuick 2.0
Rectangle {
id: root
width: 220
height: 220
color: “black”
GreenRectangle {
x: 10
y: 10
width: 100
height: 100
BlueRectangle {
width: 48
y: 8
anchors.left: parent.left
anchors.leftMargin: 8
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import QtQuick 2.0
Rectangle {
id: root
width: 220
height: 220
color: “black”
GreenRectangle {
x: 10
y: 10
width: 100
height: 100
BlueRectangle {
width: 48
y: 8
anchors.left: parent.left
anchors.leftMargin: 8
}
}
}
這次,我們使用anchors.left設(shè)置內(nèi)部藍(lán)色矩形的錨點(diǎn)為父組件的左邊線(parent.left);左邊距是 8px。另外,我們可以試著拖動(dòng)藍(lán)色矩形,看它的移動(dòng)方式。在我們拖動(dòng)時(shí),藍(lán)色矩形只能沿著距離父組件左邊 8px 的位置上下移動(dòng),這是由于我們設(shè)置了錨點(diǎn)的緣故。正如我們前面提到過的,錨點(diǎn)要比單純地計(jì)算坐標(biāo)改變的效果更強(qiáng),更優(yōu)先。
第三個(gè)例子:
QML anchors.left parent.right
代碼如下:
import QtQuick 2.0
Rectangle {
id: root
width: 220
height: 220
color: “black”
GreenRectangle {
x: 10
y: 10
width: 100
height: 100
BlueRectangle {
width: 48
anchors.left: parent.right
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import QtQuick 2.0
Rectangle {
id: root
width: 220
height: 220
color: “black”
GreenRectangle {
x: 10
y: 10
width: 100
height: 100
BlueRectangle {
width: 48
anchors.left: parent.right
}
}
}
這里,我們修改代碼為anchors.left: parent.right,也就是將組件錨點(diǎn)的左邊線設(shè)置為父組件的右邊線。效果即如上圖所示。當(dāng)我們拖動(dòng)組件時(shí),依然只能上下移動(dòng)。
下一個(gè)例子:
QML anchors.horizontalCenter
代碼如下:
import QtQuick 2.0
Rectangle {
id: root
width: 220
height: 220
color: “black”
GreenRectangle {
x: 10
y: 10
width: 100
height: 100
BlueRectangle {
id: blue1
width: 48; height: 24
y: 8
anchors.horizontalCenter: parent.horizontalCenter
}
BlueRectangle {
id: blue2
width: 72; height: 24
anchors.top: blue1.bottom
anchors.topMargin: 4
anchors.horizontalCenter: blue1.horizontalCenter
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import QtQuick 2.0
Rectangle {
id: root
width: 220
height: 220
color: “black”
GreenRectangle {
x: 10
y: 10
width: 100
height: 100
BlueRectangle {
id: blue1
width: 48; height: 24
y: 8
anchors.horizontalCenter: parent.horizontalCenter
}
BlueRectangle {
id: blue2
width: 72; height: 24
anchors.top: blue1.bottom
anchors.topMargin: 4
anchors.horizontalCenter: blue1.horizontalCenter
}
}
}
這算是一個(gè)稍微復(fù)雜的例子。這里有兩個(gè)藍(lán)色矩形:blue1和blue2。blue1的錨點(diǎn)水平中心線設(shè)置為父組件的水平中心;blue2的錨點(diǎn)上邊線相對(duì)于blue1的底部,其中邊距為 4px,另外,我們還增加了一個(gè)水平中線為blue1的水平中線。這樣,blue1相對(duì)于父組件,blue2相對(duì)于blue1,這樣便決定了三者之間的相對(duì)關(guān)系。當(dāng)我們拖動(dòng)藍(lán)色矩形時(shí)可以發(fā)現(xiàn),blue1和blue2的相對(duì)位置始終不變,因?yàn)槲覀円呀?jīng)明確指定了這種相對(duì)位置,而二者可以像一個(gè)整體似的同時(shí)上下移動(dòng)(因?yàn)槲覀儧]有指定其中任何一個(gè)的上下邊距與父組件的關(guān)系)。
另外一個(gè)例子:
QML anchors.centerIn
代碼如下所示:
import QtQuick 2.0
Rectangle {
id: root
width: 220
height: 220
color: “black”
GreenRectangle {
x: 10
y: 10
width: 100
height: 100
BlueRectangle {
width: 48
anchors.centerIn: parent
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import QtQuick 2.0
Rectangle {
id: root
width: 220
height: 220
color: “black”
GreenRectangle {
x: 10
y: 10
width: 100
height: 100
BlueRectangle {
width: 48
anchors.centerIn: parent
}
}
}
與**個(gè)例子類似,我們使用的是anchors.centerIn: parent將藍(lán)色矩形的中心固定在父組件的中心。由于我們已經(jīng)指明是中心,所以也不能拖動(dòng)這個(gè)藍(lán)色矩形。
**后一個(gè)例子:
QML anchors.horizontalCenter verticalCenter
代碼如下:
import QtQuick 2.0
Rectangle {
id: root
width: 220
height: 220
color: “black”
GreenRectangle {
x: 10
y: 10
width: 100
height: 100
BlueRectangle {
width: 48
anchors.horizontalCenter: parent.horizontalCenter
anchors.horizontalCenterOffset: -12
anchors.verticalCenter: parent.verticalCenter
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import QtQuick 2.0
Rectangle {
id: root
width: 220
height: 220
color: “black”
GreenRectangle {
x: 10
y: 10
width: 100
height: 100
BlueRectangle {
width: 48
anchors.horizontalCenter: parent.horizontalCenter
anchors.horizontalCenterOffset: -12
anchors.verticalCenter: parent.verticalCenter
}
}
}
上一個(gè)例子中,anchors.centerIn: parent可以看作等價(jià)于anchors.horizontalCenter: parent.horizontalCenter和anchors.verticalCenter: parent.verticalCenter。而這里,我們設(shè)置了anchors.horizontalCenterOffset為 -12,也就是向左偏移 12px。當(dāng)然,我們也可以在anchors.centerIn: parent的基礎(chǔ)上增加anchors.horizontalCenterOffset的值,二者是等價(jià)的。由于我們在這里指定的相對(duì)位置已經(jīng)很明確,拖動(dòng)也是無效的。
至此,我們簡單介紹了 QML 中定位器和錨點(diǎn)的概念??雌饋磉@些元素和機(jī)制都很簡單,但是,**有機(jī)地結(jié)合,足以靈活應(yīng)對(duì)更復(fù)雜的場景。我們所要做的就是不斷熟悉、深化對(duì)這些定位布局技術(shù)的理解。
相關(guān)推薦:
蘇州JAVA培訓(xùn) 蘇州JAVA培訓(xùn)班 蘇州JAVA培訓(xùn)機(jī)構(gòu)
體驗(yàn)課預(yù)約試聽
倒計(jì)時(shí)
12:00:00