Qt සමඟ වැඩිපුර ඩෙස්ක්ටොප් යෙදුම් ලියා නැත්තේ ඇයි? [වසා ඇත]


205

Qt සමඟ මගේ අත්දැකීම් වලින් මා දන්නා සහ තේරුම් ගෙන ඇති පරිදි, එය ඉතා හොඳ සහ පහසුවෙන් ඉගෙන ගත හැකි පුස්තකාලයකි. එය ඉතා හොඳින් සැලසුම් කරන ලද ඒපීඅයි එකක් ඇති අතර එය හරස් වේදිකාවක් වන අතර මේවා ආකර්ශනීය කරවන බොහෝ අංග වලින් දෙකක් පමණි. තවත් ක්‍රමලේඛකයින් Qt භාවිතා නොකරන්නේ මන්දැයි දැන ගැනීමට මම උනන්දු වෙමි. එයට එරෙහිව කථා කරන iency නතාවයක් තිබේද? Qt ට වඩා වෙනත් පුස්තකාල වඩා හොඳ කරන්නේ කුමන අංගයෙන්ද? බලපත්‍රය සම්බන්ධ ගැටළුව තිබේද?


61
එය ස්වදේශීය C ++ ය. බොහෝ සංවර්ධකයින් C # වැනි ඉහළ මට්ටමේ භාෂාවන්ට වැඩි කැමැත්තක් දක්වයි.
user16764

15
පිටුපසට ගැළපෙන දෙබිඩි කඩුව Qt ට බොහෝ අනුකම්පාවන්, නොගැලපෙන අඩුපාඩු සහ වෙනත් දුර්වල හැසිරීම් වලින් ඉතිරි වී ඇත.
edA-qa mort-ora-y


17
TIOBE දර්ශකය සැබවින්ම නිවැරදි මිනුමක් යැයි මම නොසිතමි, මන්ද එය ජනප්‍රියත්වය මනිනුයේ මිස භාවිතා නොකිරීමයි. GitHub, Bitbucket, Codeplex, සහ Sourceforge වැනි විවෘත මූලාශ්‍ර ගබඩාවල ඇති කේත ප්‍රමාණය සංසන්දනය කිරීමෙන් වඩාත් නිවැරදි මිනුම් ලබා දෙනු ඇත. (මම එම වඩා නිවැරදි මිනුම් # 1 සහ # 2 ස්ථානවල C සහ C ++ දමා විශ්වාස - එය නවකයෙකු වන විද්යාල පාඨමාලා සඳහා භාවිතා කරන නිසා ජාවා එම TIOBE දර්ශකය තුළ අසාධාරණ වාසිය, සහ නව වැඩසටහන්, පළපුරුදු අය වඩා වැඩි වෙද්දී විලාසිතා කරන්න)
බිලී ඔනේල්

12
Ior ජෝජියෝ: අර්ම්, ඔබ C # හි එවැනි දේ ගැන සිතා බැලිය යුතුය. "මෙය අයිති කවුද" යන සංකල්පය "අමතන්නේ කවුද" යන්නට වඩා බොහෝ සෙයින් වැඩි ය delete. ස්මාර්ට් පොයින්ටර්ස් විසින් එය පැහැදිලිව ප්‍රකාශ කිරීම භාෂාවක් අසාර්ථක නොවේ; ඔබ එවැනි දේ ගැන නොසිතන්නේ නම්, මා දැක ඇති ඕනෑම උසස් භාෂාවකින් ඔබ කසළ ජනනය කිරීමට යන්නේ ය.
බිලී ඔනේල්

Answers:


177

මම මෙය විකාර සහගත පිළිතුරක් වීමට අදහස් නොකරමි, නමුත් මම පෞද්ගලිකව Qt භාවිතා නොකිරීමට හේතු මෙයයි. ඒ ගැන කීමට හොඳ දේවල් ඕනෑ තරම් තිබේ - එනම් ඒපීඅයි බොහෝ විට ක්‍රියා කරන අතර එය බාධාවකින් තොරව පාලම් වේදිකා කරයි. නමුත් මම Qt භාවිතා නොකරමි, මන්ද:

  1. සමහර අවස්ථාවලදී, එය ස්වදේශීය වැඩසටහන් මෙන් පෙනෙන්නේ නැත. විවිධ දෘශ්‍ය මෝස්තර හේතුන් මත, සියලු වේදිකා සඳහා තනි UI එකක් නිර්මාණය කිරීම සහජයෙන්ම යන්ත්‍රයෙන් යන්ත්‍රයට ගෙන යන විට නිවැරදිව පෙනෙන්නේ නැත. උදාහරණයක් ලෙස, මැක් යන්ත්‍රවල, බෙදීම් බාර් සාමාන්‍යයෙන් සාපේක්ෂව thick න වන අතර බොත්තම් කුඩා වන අතර අයිකන සහිත වටකුරු වේ. වින්ඩෝස් යන්ත්‍රවල, බෙදීම් බාර් සාමාන්‍යයෙන් පටු වන අතර බොත්තම් වඩාත් පා ual මය, වඩා හතරැස් මෝස්තර ඇත. සෑම වේදිකාවක් සඳහාම ඔබට එක් UI එකක් ලිවිය හැකි නිසා ඔබ බොහෝ යෙදුම් සඳහා කළ යුතු යැයි අදහස් නොකෙරේ.
  2. Qt යනු C ++ පුස්තකාලයක් නොවේ. එයට වෙනම සම්පාදන පියවරක් අවශ්‍ය වන අතර එමඟින් අනෙකුත් බොහෝ පුස්තකාල සමඟ සසඳන විට ගොඩනැගීමේ ක්‍රියාවලිය වඩාත් සංකීර්ණ වේ.
  3. (2) හි ප්‍රති C ලයක් ලෙස, C ++ IDEs සහ මෙවලම් වලට Qt ප්‍රකාශන දෝෂ ලෙස සලකුණු කළ හැකිය, මන්ද ඒවා Qt හි විශේෂතා තේරුම් නොගනී. මෙය QtCreator හෝ පා ual මය පමණක් සංස්කාරකයක් භාවිතා කිරීමට පාහේ බල කරයි vim.
  4. Qt යනු විශාල ප්‍රභවයක් වන අතර, එය සම්පාදනය කිරීමට පෙර ඔබ භාවිතා කරන ඕනෑම යන්ත්‍රයක තිබිය යුතුය. මෙමඟින් ගොඩනැඟීමේ පරිසරයක් සැකසීම වඩාත් වෙහෙසකාරී විය හැකිය.
  5. එය ලබා ගත හැක්කේ LGPL යටතේ පමණි, එමඟින් වඩා සීමිත හෝ අඩු සීමිත බලපත්‍රයක් යටතේ මුදා හැරීමට අවශ්‍ය වූ විට තනි ද්විමය යෙදවීම භාවිතා කිරීම දුෂ්කර කරයි.
  6. ඒ හා සමානව ලියා ඇති “සරල ඔල් ස්වදේශීය යෙදුම්” හා සසඳන විට එය අතිශය විශාල සම්පාදිත ද්විමයන් නිෂ්පාදනය කරයි (කේඩීඊ සඳහා ලියා ඇති පා course මාලා යෙදුම් හැර).

12
Ehehumanizer: LGPL බලපත්‍රය සහ වාණිජ බලපත්‍රය ඇත. වාණිජ බලපත්‍රය බලපත්‍රලාභියාගේ පැත්තෙන් ඩොලර් දහස් ගණනක් වන අතර නැවත බෙදාහැරීමට ඉඩ නොදේ. බීඑස්ඩී, එම්අයිටී හෝ බූස්ට් වැනි ලිබරල් බලපත්‍ර යටතේ විවෘත මූලාශ්‍ර ව්‍යාපෘති සඳහා කතුවරුන් ටොන් ගණනක් මුදල් උපයන්නේ නැති අතර ඔවුන් ප්‍රාර්ථනා කරයි ලිබරල් බලපත්‍රයක් යටතේ ඔවුන්ගේ කේතය මුදා හැරීම සඳහා, එල්ජීපීඑල් මත යැපීම අසාධාරණ ය, නමුත් ප්‍රශ්නයක් ඇති සංවර්ධකයින්ට සාමාන්‍යයෙන් වාණිජ බලපත්‍ර ලබා දිය නොහැක.
බිලී ඔනේල්

27
# 6 මම එය වළක්වා ගැනීමට ඇති ලොකුම හේතුවයි. මම කිව්වේ, මට විශාල, අවුල් සහගත වැඩසටහනක් අවශ්‍ය නැති අතර, විශේෂිත බලපත්‍රයකට බැඳී සිටීමට මා කැමති නැත, නමුත් එය ඇත්ත වශයෙන්ම හොඳ, දේශීය පෙනුමක් හා හැඟීමක් නොමැති වීම මට ගනුදෙනුවක් කඩන්නෙකි. ඕඑස්එක්ස් සහ වින්ඩෝස් හි මෑත සංස්කරණ විශේෂයෙන් ඔවුන්ගේ ස්වදේශීය අතුරුමුහුණත් ලස්සන, වේගවත් හා ක්‍රියාකාරී බවට පත්කිරීමේ අපූරු කාර්යයක් කර ඇති අතර, ඔවුන් මා වෙනුවෙන් දැනටමත් කර ඇති සියලු වැඩකටයුතුවලට උත්තේජනය කරමි. දේශීය පෙනුමක් නැති බොහෝ වැඩසටහන් මට ලාභදායී හා අනවසරයෙන් දැනෙන බව මට පෙනේ (සෑම විටම නොවේ, නමුත් එය මා තරමක් දුරස් කරයි).
ග්‍රෙග් ජැක්සන්

19
ඔබේ අංකය 6 අංකය 1. මෙය වේ ඇති කළ යුතු දුර හා Qt, තුලදී සමග ලොකුම ගැටලුව. බොහෝ අවස්ථාවන්හීදී, එය හුදෙක් ස්වදේශීය API භාවිතා නොකරයි. මම කැමතියි මගේ මෘදුකාංගය ස්වදේශීය ලෙස පෙනීමට. පරිශීලකයෝ ද එසේ ය. Qt සමඟ නිර්මාණය කරන ලද මැක් යෙදුමක් මැක් යෙදුමක් ලෙස මා දැක නැත. වෙනත් මැක් පරිශීලකයින් කිසිවෙකු නොසිටින අතර ඔවුන් ඒ ආකාරයේ දෙයක් ගැන සැලකිලිමත් වේ. ඔබ එය ලිනක්ස් යෙදුම් නිර්මාණය කිරීමට පමණක් භාවිතා කරන්නේ නම් “හරස් වේදිකාවක්” වීමේ සියලු වාසි ඔබට අහිමි වේ, එය ස්වදේශික ලෙස පෙනෙන එකම ස්ථානය ගැන ඇත්ත වශයෙන්ම ස්වදේශික කිසිවක් නොමැති නිසා.
කෝඩි ග්‍රේ

41
'ස්වදේශීය' පෙනුමේ ගැටලුව තවදුරටත් එහි නොමැත. වින්ඩෝස් යෙදුම්වල පැරණි අනුකූලතාව දැන් ඔබට ලබා ගත හැකි ඕනෑම අද්විතීය බ්ලොබ්, දිලිසෙන සහ සජීවිකරණවල අවජාතකකරණයකි. වර්තමානයේ එම්එස්එස් ප්‍රමුඛ නිෂ්පාදන පවා නොගැලපෙන GUI ඇති ආකාරය බැලීමට Office හෝ Windows 7 හි පාලක පැනලය දෙස බලන්න. මැක් භාවිතා කරන්නන් - හොඳයි, ඔබට එහි ඉතා වලංගු කරුණක් තිබේ.
gbjbaanb

5
ReTrevorBoydSmith: කණගාටුයි, නමුත් ඔබ වැරදියි. පෙර සැකසුම් භාවිතා කරන එකම රාමුව Qt වේ. කාලය. GNOME, FLTK, WX, සහ මිතුරන් පරීක්ෂා කර මට පෙර සැකසුම් පියවරක් පෙන්වන්න. ඔබට එකක් සොයාගත නොහැක. තවත් සමහර පුස්තකාල විවිධ ගොඩනැඟිලි පද්ධති සමඟ එන නමුත් දවස අවසානයේදී ඒවා C ++ පුස්තකාල වන අතර ඒවා ඕනෑම C ++ සම්පාදකයෙකුට සෑදිය හැකිය. "Raw win32 මගේ හේතු වල නොමැත", එය මගේ හේතු # 5 සහ # 6 ලෙස පවතී.
බිලී ඔනේල්

118

මිනිසුන් පවසන පරිදි, එක් එක් මෙවලම එක් එක් ගැටලුව හා තත්වයට ගැලපේ ...

නමුත් ඔබ C ++ ක්‍රමලේඛකයෙක් නම්, Qt යනු ඔබේ රාමුවයි. ප්‍රතිවාදියෙක් නැත.

අපි සංකීර්ණ වෛද්‍ය අනුරූප වාණිජ යෙදුමක් සංවර්ධනය කරන අතර Qt දිගටම පවතී.

මිනිසුන් ඒ ගැන පවසන 'අවාසි' අසත්‍ය යැයි මම නොකියමි, නමුත් ඔවුන් දීර් Q කාලයක් තිස්සේ Qt උත්සාහ කර නොමැති බව මට හැඟේ (සෑම නව අනුවාදයකම එය අඛණ්ඩව වැඩිදියුණු වේ ...) සහ, බොහෝ දුරට ඔවුන් අදහස් දක්වන සියලුම ගැටළු ඔබ සැලකිලිමත් වන්නේ නම් ගැටළුවක් නොවේ.

UI වේදිකා නොගැලපීම: ඔබ අභිරුචිකරණය හෝ අභිරුචි කලාවක් නොමැතිව UI විජට් 'ඒවා' ලෙස භාවිතා කරන්නේ නම් පමණි.

Qt පෙර සැකසුම් අධි බර: ඔබ ඇත්ත වශයෙන්ම අවශ්‍යතාවයක් නොමැති විට සං signal ා-තව් යාන්ත්‍රණය හෝ QObject උරුමය අනිසි ලෙස භාවිතා කරන්නේ නම් පමණි.

මාර්ගය වන විට, අපි තවමත් C # .NET හි යෙදුම් ලියන අතර එය දීර් time කාලයක් තිස්සේ කරමින් සිටිමු. ඒ නිසා මම හිතන්නේ මට ඉදිරිදර්ශනයක් ඇති බවයි.

මම කී පරිදි, එක් එක් තත්වය සඳහා එක් එක් මෙවලම,

නමුත් Qt යනු ස්ථාවර හා ප්‍රයෝජනවත් රාමුවක් බවට සැකයක් නැත.


9
+1 ස්තූතියි! මට අවශ්‍ය වූයේ එයම ලිවීමටයි. වඩාත්ම විකාරය වන්නේ "විවෘත නොවන මූලාශ්‍ර / වාණිජ තර්කය" යන්නයි. පුදුමයට කරුණක් නම්, විවෘත මූලාශ්‍රය යන යෙදුම බොහෝ අය තේරුම් ගැනීම කෙතරම් වැරදිද? Qt මම එය භාවිතා කරන බැවින් එය විවෘත මූලාශ්‍රයක් විය (1.4). එය වඩාත් සාධාරණ බලපත්‍රයක් භාවිතා කර ඇත: Qt -> ගෙවීමෙන් මුදල් උපයන්න.
වැලන්ටින් හයිනිට්ස්

17
ඔහ් සහ මම ඇත්ත වශයෙන්ම මෙගාබයිට් 50 ක කලා සහ තවත් MB 200 ක වීඩියෝ නිබන්ධන සහ දත්ත අඩංගු යෙදුමට MB 10 ඩීඑල්එල් එකතු කිරීම ගැන සැලකිලිමත් නොවෙමි :)
Петър Петров

9
Qt සඳහා අවශ්‍ය ඉඩ මේ දිනවල ලාභයි.
trusktr

5
මෙය Qt සමඟ මගේ අත්දැකීමට බෙහෙවින් ගැලපේ (විජට් රාමුව, මම මෙතෙක් බැරෑරුම් කිසිවක් සඳහා QML / QtQuick භාවිතා කර නැත). සංකීර්ණ UI අවශ්‍යතා සහිත විශාල යෙදුම් ලිවීම සුදුසුය. ඔබ එය ඉගෙන ගත් පසු, ඔබට ඉතා .ලදායී විය හැකිය. ගොඩනැඟීමේ පද්ධතිය නිසියාකාරව සකසා ඇත්නම්, සඳහන් කර ඇති අවාසි (moc ing, ui ගොනු ආදිය සඳහා වෙනම සම්පාදනය කිරීමේ පියවර) ගැටළුවක් නොවේ. මට qmake හෝ cmake නිර්දේශ කළ හැකිය.
නිල්ස්

Qt 5.8 සිට ඔබේ නිශ්චිත අවශ්‍යතා සඳහා අතිශයින්ම Qt අවම කරන Qt Lite නම් ව්‍යාපෘතියක් ඇත. මෙය වාණිජ ලක්ෂණයකි;)
එස්.එම්.මෞසාවි

37

Qt ගැන මා අකමැති සෑම දෙයකින්ම, එය සැකිලි සමඟ හොඳින් ක්‍රීඩා නොකිරීම මට වඩාත්ම දෝෂ සහගතය. ඔබට මෙය කළ නොහැක:

template < typename T >
struct templated_widget : QWidget
{
  Q_OBJECT;

public signals:
  void something_happened(T);
};

එය පෙර සැකසුම්කරු සමඟ හොඳින් ක්‍රියා නොකරයි. ඔබට මෙය කළ නොහැක:

#define CREATE_WIDGET(name,type) \
struct name ## _widget : QWidget \
{ \
  Q_OBJECT; \
\
public signals: \
  void something_happened(type); \
}

එය, සං signal ාවකට ප්‍රතිචාර දක්වන සෑම දෙයක්ම Q_OBJECT විය යුතුය යන කාරණය සමඟ මිශ්‍ර වී, C ++ ක්‍රමලේඛකයෙකු සඳහා වැඩ කිරීමට Qt අසීරු කරයි. ජාවා හෝ පයිතන් විලාසිතාවේ ක්‍රමලේඛනය සඳහා භාවිතා කළ අය ඇත්ත වශයෙන්ම වඩා හොඳය.

මම සැබවින්ම බොහෝ කාලයක් හා වෑයමක් දැරූ අතර නැවත ආරක්‍ෂාව ලබා ගැනීමට සහ ඕනෑම විනෝදජනක වස්තුවකට Qt සං signal ාවක් සම්බන්ධ කිරීමට ක්‍රමයක් සැකසීමට: http://crazyeddiecpp.blogspot.com/2011/01/quest-for-sane-signals -in-qt-step-1.html

මට එහි කිරීමට අවශ්‍ය වන්නේ Qt moc විසින් කළ නොහැකි දෙයට යාබදව සිදු කරන ලද මූලික, එදිනෙදා C ++ සංවර්ධනයයි ... එය මේ දිනවල මුළුමනින්ම අනවශ්‍යය.

අවංකවම, මම එය සමඟ සිරවී සිටිමි, මන්ද ඔබට ස්වයංක්‍රීය UI පරීක්ෂණයක් කිරීමට අවශ්‍ය නම්, QTC යනු MFC හි නගරයෙන් අඩු නගරයක ඇති එකම ක්‍රීඩාවයි ... එය 1980 ක් පමණ වේ (එය එම ජරාව වැඩ කිරීම ඉතා අසීරු ය). සමහරු WX යැයි පැවසිය හැකි නමුත් ඊටත් වඩා බරපතල ගැටළු තිබේ. GTKmm මගේ පළමු තේරීම වනු ඇත, නමුත් ඒ සියල්ල හිමිකරු විසින් ඇද ගන්නා ලද අතර ප්‍රවේශ විය නොහැකි බැවින් ... කර්මාන්ත සම්මත පරීක්ෂණ මෘදුකාංග මඟින් ධාවනය කළ නොහැක. Qt ඒ සම්බන්ධයෙන් ප්‍රමාණවත් නොවේ ( ඔබ ප්‍රවේශවීමේ ප්ලගිනය වෙනස් කරන විට යන්තම් ක්‍රියා කරයි).


1
WX සමඟ ඇති ප්‍රධාන ගැටළු ලෙස ඔබ දකින්නේ කුමක්ද?
ටොම් ඇන්ඩර්සන්

7
Om ටොම් - දුර්වල ලියකියවිලි, විශේෂයෙන් නව දේවල් සඳහා. AUI සංරචක යන්තම් ලේඛනගත කර ඇති අතර විශාල කොටස් අතුරුදහන් වී ඇති අතර නිෂ්පාදන පරිසරයක භාවිතා කිරීම අපහසු වේ. අවම වශයෙන් win32 හි සිදුවීම් ක්‍රියාවලිය සඳහා වන ලියකියවිලි මූලික වශයෙන් වැරදී ඇත. "මෙය ක්‍රියාත්මක විය යුතුයි !!!" ගැඹුරු සැකසුම් කේතයට බැසීමට පෙර ඩබ්ලිව්එක්ස් කරන්නේ කුමක්ද යන්න ලේඛනය අනුගමනය නොකරන බවත් මා කරමින් සිටි දෙය කිසි විටෙකත් ක්‍රියාත්මක නොවන බවත් දැන ගැනීමට.
එඩ්වඩ් අමුතු

1
දේපල ජාලක පුස්තකාලය ප්‍රධාන මාර්ගයට පිළිගැනීම ගැනද මා කලබල විය. මම එම පුස්තකාලය භාවිතා කළ අතර එය ලියූ ක්‍රමලේඛකයා වෙනුවෙන් සත්‍ය දැනුමක් නොමැතිකමට අමතරව මූලික සැලසුම් අඩුපාඩු රාශියක් පෙන්නුම් කර ඇත (නිදසුනක් ලෙස ඉදිකිරීම්කරුවන්ගේ අථත්‍ය කාර්යයන් ලෙස හැඳින්වේ). එය සහ AUI හි දුර්වල තත්වය දුප්පත් ප්‍රමිතීන්ට නැඹුරු විය. මමත් ස්ථිතික සිදුවීම් වගු වල විශාල රසිකයෙක් නොවෙමි, අවම වශයෙන් සිදුවීම් වලට ප්‍රතිචාර දැක්වීමට තවත් ක්‍රමයක් ඇතත් ... එම්එෆ්සී මෙන් නොව, ඩබ්ලිව්එක්ස්, කෙසේ වෙතත් ආකර්ෂණීය වීමට වඩා වැඩි ය.
එඩ්වඩ් අමුතු

ස්තූතියි. මම එය භාවිතා කර ඇත්තේ ටිකක් පමණි, සහ wxPython API හරහා, එය තරමක් හොඳ යැයි පෙනේ. එය සමහර නපුර සැඟවිය හැකි බව මට වටහා ගත හැකි අතර, වඩාත් බරපතල ගැටලුවලට එරෙහිව නැගී සිටීමට තරම් ගැඹුරට මා සම්බන්ධ වී නොමැත. මා දැනුවත් විය යුතු දෙයක්.
ටොම් ඇන්ඩර්සන්

1
සං signal ාවකට ප්‍රතිචාර දක්වන සෑම දෙයක්ම Q_OBJECT විය යුතුය, වර්තමානයේ නැත ... දැන්, ස්ථිතික ශ්‍රිත, ශ්‍රිත සහ ලැම්බඩා ශ්‍රිතවලට පවා සං signal ාවකට ප්‍රතිචාර දැක්විය හැකිය (ඔබට ශ්‍රිත දර්ශක තව් ලෙස භාවිතා කළ හැකිය). උදාහරණ සාමාජිකයා ශ්‍රිත දර්ශකයක් බවට පරිවර්තනය කිරීම සඳහා ඔබ std :: bind භාවිතා කරමින් සම්බන්ධ කළහොත් No-QObject පන්තිවලට සාමාජික තව් තිබිය හැකිය.
විනේෂස් ඒ. ජෝර්ජ්

29

Qt භාවිතා නොකිරීමට එක් හේතුවක් නම්, ඔබ වින්ඩෝස් වැනි එක් ගෘහ නිර්මාණ ශිල්පයක් සඳහා පමණක් ලියන්නේ නම්, ඔබට C # /. NET (හෝ මැක්හි කොකෝවා) භාවිතා කිරීමට අවශ්‍ය වනු ඇත, මන්ද ඔවුන්ට නිරන්තරයෙන් නවතම සීනු වලින් ප්‍රයෝජන ගැනීමට හැකි වනු ඇත - සහ මෙහෙයුම් පද්ධතියේ විස්ල්.

ඔබ හරස්-වේදිකා යෙදුම් ලියන්නේ නම්, ඔබ දැනටමත් ජාවා වැනි වෙනත් තාක්‍ෂණයකට (එනම් ඔබ "ජාවා සාප්පුවක" වැඩ කරයි) දැඩි ලෙස පවරා ඇත. ඔබේ තාක්‍ෂණය තෝරා ගැනීම භාෂා විශේෂිත ඒපීඅයි වැනි ඔබ සංවර්ධනය කරමින් සිටින පරිසර පද්ධතිය විසින් නියම කරනු ලැබේ. මේ ආකාරයේ අවස්ථා වලදී, තාක්ෂණයන් ගණන අවම කිරීම ප්‍රයෝජනවත් විය හැකිය.

මට සිතිය හැකි තුන්වන හේතුව නම් Qt පදනම් වී ඇත්තේ C ++ වටා වන අතර C ++ යනු ක්‍රමලේඛනය කිරීමට සාපේක්ෂව දුෂ්කර / භයානක භාෂාවක් වේ. එය වෘත්තිකයින් සඳහා භාෂාවක් යැයි මම සිතමි. ඔබට ඉහළ කාර්ය සාධනයක් අවශ්‍ය නම් සහ සුපරීක්ෂාකාරී වීමට හැකියාවක් තිබේ නම්, C ++ තවමත් නගරයේ හොඳම ක්‍රීඩාව විය හැකිය. ඇත්ත වශයෙන්ම, ඔබ විෂය පථයෙන් බැහැරව දේවල් සකස් කළහොත් Qt මතක කළමනාකරණ ගැටළු බොහොමයක් සමනය කරයි. එසේම, Qt විසින්ම පරිශීලකයාට අප්රසන්න C ++ ගැටළු රාශියකින් පරිවරණය කිරීම සඳහා හොඳ කාර්යයක් කරයි. සෑම භාෂාවකටම හා රාමුවකටම එහි වාසි සහ අවාසි ඇත. එය සාමාන්‍යයෙන් රාත්‍රී භෝජන සංග්‍රහවල දක්නට ලැබෙන එකතු කිරීම මගින් සාරාංශගත කළ හැකි ඉතා සංකීර්ණ කාරණයක් වේ: වේගය, ගුණාත්මකභාවය සහ මිල (නමුත් ඔබට තෝරා ගත හැක්කේ දෙකක් පමණි).

ප්‍රශ්නයට පිළිතුරු සැපයීම කෙරෙහි මා අවධානය යොමු කළ යුතු යැයි නීති රීති පැවසුවද, බිලී ඔනෙල් විසින් මතු කරන ලද සමහර කරුණු ප්‍රතික්ෂේප කිරීමට මට අවශ්‍යය, Qt භාවිතා නොකිරීමට පොදුවේ සඳහන් කර ඇති හේතු සාරාංශ කරමින් හොඳ කාර්යයක් කරන බව මම සිතමි.

  1. Qt ඇත්ත වශයෙන්ම C ++ පුස්තකාලයක් / රාමුවක් / ශීර්ෂ ලිපිගොනු වේ. එය වැඩි දියුණු කර ඇතමැක්‍රෝ ප්‍රොසෙසරයකින් (moc) සං als ා සහ තව් ඇතුළු බොහෝ දේ ඇතුළත් වේ. එය අතිරේක සාර්ව විධානයන් (Q_OBJECT වැනි) පරිවර්තනය කරයි, එවිට පංතිවලට ස්වයං විග්‍රහයක් සහ C ++ වෙත පරමාර්ථ-සී ක්‍රියාකාරිත්වය එකතු කිරීමක් ලෙස ඔබ සිතිය හැකි වෙනත් සියලු යහපත් දේ ඇත. මෙම සංශුද්ධතාවයේ lack නතාවයෙන් අමනාප වීමට C ++ ගැන ඔබ ප්‍රමාණවත් තරම් දන්නවා නම්, එනම් ඔබ ගැති කෙනෙක් නම්, 1) Q_OBJECT සහ එහි ඉල්ක් භාවිතා නොකරන්න හෝ 2) මෙය සිදු කිරීම ගැන කෘත ful වන්න, සහ ඉතා සීමිත කොනවල් වටා වැඩසටහන් කරන්න එහිදී මෙය ගැටළුවක් ඇති කරයි. "සං als ා සහ තව් සඳහා බූස්ට් භාවිතා කරන්න!" එවිට ඔබ එක් "ගැටලුවක්" තවත් ගැටලුවකට හුවමාරු කරන බව මම නැවත කියමි. බූස්ට් ඉතා විශාල වන අතර එයට දුර්වල ලියකියවිලි, බිහිසුණු ඒපීඅයි සහ හරස් වේදිකා භීෂණය වැනි පොදුවේ සඳහන් කර ඇති ගැටළු ඇත (gcc 3 වැනි පැරණි සම්පාදකයින් සිතන්න.

  2. සංස්කාරක සහාය සඳහා, මෙය 1 සිට පහත දැක්වේ, මම තරමක් එකඟ වෙමි. ඇත්ත වශයෙන්ම, Qt නිර්මාතෘ IMHO යනු හොඳම චිත්‍රක C ++ සංස්කාරකය, කාල පරිච්ඡේදය, ඔබ Qt දේවල් භාවිතා නොකළත්. බොහෝ වෘත්තීය ක්‍රමලේඛකයින් emacs සහ vim භාවිතා කරයි. එසේම, මම සිතන්නේ සූර්යග්‍රහණය අතිරේක වාක්‍ය ඛණ්ඩය හසුරුවයි. මේ අනුව, Qt මැක්‍රෝස් (Q_OBJECT) හෝ සං als ා / තව් එකතු කිරීම් සමඟ කිසිදු ගැටළුවක් නොමැත. දෘශ්‍ය ස්ටුඩියෝවෙන් ඔබට මෙම මැක්‍රෝස් සොයාගත නොහැකි වනු ඇත, මන්ද (මම පිළිගනිමි) ඒවා C ++ සඳහා එකතු කිරීම් වේ. එහෙත්, විශාල වශයෙන්, C # /. NET ජනයා කෙසේ හෝ Qt භාවිතා නොකරනු ඇත, මන්ද ඔවුන්ගේම හිමිකාරී තාක්‍ෂණයන්ගෙන් ආවරණය වන ක්‍රියාකාරිත්වයන් විශාල ප්‍රමාණයක් ඔවුන් සතුව ඇති බැවිනි.

  3. Qt ප්‍රභවයේ ප්‍රමාණයට අනුව, එය එක රැයකින් සම්පාදනය වන තාක් කල්, ඒ ගැන සැලකිලිමත් වන්නේ කවුද? මම මගේ ද්විත්ව හරය මැක්බුක්හි Qt 4 සම්පාදනය කළේ "එක රැයකට වඩා අඩු කාලයකිනි." කිසියම් තාක්‍ෂණයක් භාවිතා කිරීමට හෝ භාවිතා නොකිරීමට ඔබ ගත් තීරණයට මෙය හේතු නොවන බව මම විශ්වාස කරමි. මෙය සැබවින්ම ගැටළුවක් නම්, ඔබට Qt වෙබ් අඩවියෙන් මැක්, ලිනක්ස් සහ වින්ඩෝස් සඳහා පෙර සැකසූ SDK බාගත කළ හැකිය.

  4. බලපත්ර ලබා ගැනීම තේරීම් තුනකින් ලබා ගත හැකිය: 1) ඔබ Qt ITSELF වෙනස් කිරීමට කැමති නම් සහ බෙදා නොගැනීමට හෝ යමෙකු Qt භාවිතා කරන බවත්, ආරෝපණය ලබා දීමට අකමැති බවත් සඟවන්න (වෙළඳනාම සහ රූපය සඳහා ඉතා වැදගත් විය හැකිය!) 2 ) ජීපීඑල් සහ 3) එල්ජීපීඑල්. ඔව්, ස්ථිතික සම්බන්ධතාවයේ ගැටළු තිබේ (Qt සියල්ලම ද්විමය වෙතට පෙරළීම) - නමුත් මම සිතන්නේ එය ඇතුළත බැලීමට නොහැකි නිසාත්, ඔබ Qt (ආරෝපණය!) භාවිතා කරන බව නොදැනෙන නිසාත් ය. මම ඩිජිජියා වෙතින් හිමිකාර බලපත්‍රයක් මිලදී ගැනීමට උත්සාහ කළ අතර ඔවුන් මට කීවේ "ඔබ කරන්නේ කුමක්ද, ඔබට එය ඇත්තෙන්ම අවශ්‍ය නැත" යනුවෙනි. වොව්. බලපත්‍ර විකිණීමේ ව්‍යාපාරයේ යෙදී සිටින ව්‍යාපාරයකින්.

  5. ද්විමය / බණ්ඩලයේ ප්‍රමාණය වන්නේ ඔබ සතුව නැති අයට Qt දේවල් බෙදා හැරිය යුතු බැවිනි: වින්ඩෝස් දැනටමත් තිබේද? විෂුවල් ස්ටුඩියෝ දේවල් හෝ ඔබ ධාවන කාලය ස්ථාපනය කළ යුතුය. මැක් දැනටමත් දැවැන්ත කොකෝවා සමඟ පැමිණ ඇති අතර එය ගතිකව සම්බන්ධ කළ හැකිය. මම විශාල බෙදාහැරීමක් සිදු නොකළද, මෙගාබයිට් 50 ක ස්ථිතික ගොනුව බෙදා හැරීමේදී මට කිසි විටෙකත් එතරම් ගැටළුවක් හමු වී නොමැත (යූපීඑක්ස් වැනි ද්විමය ස්ට්‍රයිපර් / සම්පීඩන උපයෝගීතා සමඟ මට ඊටත් වඩා කුඩා කළ හැකිය). මට මෙය කිරීමට ප්‍රමාණවත් නොවේ, නමුත් කලාප පළල කිසියම් ගැටළුවක් නම්, මම මගේ බිල්ඩ් ස්ක්‍රිප්ටයට යූපීඑක්ස් පියවරක් එක් කරමි.

  6. "ස්වදේශීය පෙනුම සහ හැඟීම" යන්න අර්ථ දක්වන්නේ කුමක්ද? මම හිතන්නේ මැක් එකමුතු පෙනුමක් හා හැඟීමකට සමීප වන බව "බොහෝ දෙනා" එකඟ වනු ඇත. නමුත් මෙන්න මම වාඩි වී, සෆාරි, අයිටියුන්ස්, විවරය, ෆයිනල් කට් ප්‍රෝ, පිටු යනාදිය දෙස බලන අතර ඒවා OS වෙළෙන්දා විසින් සාදන ලද ඒවා වුවත් ඒවා එක හා සමානව පෙනෙන්නේ නැත. "හැඟීම්" පැතිකඩ වඩාත් අදාළ යැයි මම සිතමි: විජට් මෝස්තර, ප්‍රතිචාරාත්මක බව යනාදිය. ඔබ ප්‍රතිචාර දැක්වීම ගැන සැලකිලිමත් වන්නේ නම්, ජාවා හෝ වෙනත් ඉහළ ගතික භාෂාවක් වෙනුවට C ++ භාවිතා කිරීමට හොඳ හේතුවක් මෙන්න. (පරමාර්ථය සී ද ගල් ගසයි, නමුත් මම උත්සාහ කරන්නේ Qt පිළිබඳ මිථ්‍යාවන් දුරු කිරීමට ය)

සාරාංශයක් ලෙස, එය සංකීර්ණ කාරණයක්. නමුත් මිථ්‍යාවන් සහ දශක යල්පැනගිය තොරතුරු මත පදනම්ව යමෙකු සිතිය හැකි පරිදි "Qt භාවිතා නොකිරීමට" අඩු හේතු ඇති බව මම පෙන්වා දීමට කැමැත්තෙමි.


1
මට නොලැබෙන දෙය නම් මෙම හරස් වේදිකා පුස්තකාල හුදෙක් එතීමේ කාර්යයන් හෝ ඊටත් වඩා හොඳ නොවන්නේ මන්ද යන්නයි; කොකෝවා, වින් 32, කේඩීඊ / ග්නෝම් ක්‍රියාකාරිත්වයන් වටා ගමන් කරන්නේ නම්, එහි ඇති සියලුම අංග සමඟින් හොඳම පෙනුමැති යූඅයි සහතික කරයි.
මාකස් ජේ

2
Ar මාකස් ජේ එක් මෙවලම් කට්ටලයක් වටා එතීම පැහැදිලිවම සුළුපටු නොවේ, 4 ක් හෝ ඊට වැඩි ගණනක් කමක් නැත - නමුත් එය එතරම් පහසු යැයි ඔබ සිතන්නේ නම්, උත්සාහ කිරීමට ඔබව සාදරයෙන් පිළිගනිමු. කොන්දේසි සහිත පූර්ව සැකසුම් භාවිතයෙන් පමණක් මෙය සාක්ෂාත් කරගත හැකිය යන අදහස සඳහා ... ඔබ විහිළුවක් කළ යුතුය, නේද?
underscore_d

Ar මාකස් ජේ ලිබුයි හරියටම එයයි (කේඩීඊ සහාය නොමැතිව වුවද).
ඩෙමී

ඔබට දැන් .NET සමඟ Qt / QML භාවිතා කළ හැකි බව එක් කිරීමට මට අවශ්‍යය. ඔබට C ++ ස්පර්ශ කිරීමට අවශ්‍ය නැත. github.com/qmlnet/qmlnet ප්රාදේශීය සභා: මම කතෘ ඉන්නේ.
පෝල් නොෆ්

26

එයින් සමහරක් බලපත්‍ර ලබා දීමයි. සමහර බලපත්‍ර ඉතිහාසය සඳහා https://en.wikipedia.org/wiki/Qt_(software)# බලපත්‍ර ලබා ගැනීම බලන්න . 2000 වන තෙක් විවෘත මූලාශ්‍ර ගැන දැඩි සැලකිල්ලක් දැක්වූ අය Qt භාවිතා කළේ නැත. කාලය. (ඇත්ත වශයෙන්ම මෙය ග්නෝම්ගේ සංවර්ධනය සඳහා වූ මුල් අභිප්‍රේරණය විය.) 2005 වන තෙක් වින්ඩෝස් සඳහා නොමිලේ මෘදුකාංගයක් නිකුත් කිරීමට අවශ්‍ය පුද්ගලයින් Qt භාවිතා කළේ නැත. එදිනට පසුව පවා ජීපීඑල් හැර වෙනත් දෙයක් යටතේ නොමිලේ මෘදුකාංග අවශ්‍ය වූ අයට Qt භාවිතා කිරීමේ විකල්පයක් නොතිබුණි. මේ අනුව එම දිනයන් වලට වඩා පැරණි ඕනෑම නිදහස් මෘදුකාංග ව්‍යාපෘතියකට Qt භාවිතා කළ නොහැක. ඇත්ත වශයෙන්ම, හිමිකාර කේතයක් ලියන පුද්ගලයින්ට වරප්‍රසාදය සඳහා ගෙවීමට සිදුවිය.

තවද එය වෙනත් විකල්පවල හිඟයක් ඇති බවක් නොවේ. උදාහරණයක් ලෙස WxWidgets , GTK + සහ Tk යන සියල්ලම විවෘත කේත, හරස් වේදිකා මෙවලම් කට්ටල වේ.

දිගු කලක් තිස්සේ ඩෙස්ක්ටොප් පරිගණකයේ වින්ඩෝස් කොතරම් ප්‍රබලද යත්, බොහෝ මෘදුකාංග වින්ඩෝස් මත පමණක් ධාවනය කිරීමට සෑහීමකට පත්විය. ඔබ මයික්‍රොසොෆ්ට් මෙවලම් කට්ටලය ස්ථාපනය කරන්නේ නම්, වෙනත් ඕනෑම දෙයක් ගැන කරදර වීමට වඩා මයික්‍රොසොෆ්ට් හි හිමිකාර දේවල් භාවිතා කිරීම පහසු වන අතර බොහෝ ක්‍රමලේඛකයින් එය කළා.


1
tbtilly: GTK + යනු හරස් වේදිකාවකි. උදාහරණයක් ලෙස, Pidgin IM සේවාදායකයා GTK + මත ලියා ඇත.
බිලී ඔනේල්

1
හරි, කෙසේ වෙතත්, වින්ඩෝස් මත ධාවනය කිරීමට 'කෙසේ හෝ' හැකි ය :)
Dehumanizer

6
වින්ඩෝස් හි GIMP ස්ථාපනය කර බලන්න.
user281377

2
ඔව්, සහ GIMP වින්ඩෝස් මත හොඳින් ක්‍රියා කරයි, නමුත් එය නිසැකවම වින්ඩෝස් 7 යූඅයි පෙනුම හා හැඟීම සමඟ නොගැලපේ.
ඇලන් බී

5
Pidgin බොහෝ විට වින්ඩෝස් හි GTK සඳහා වඩා හොඳ උදාහරණයකි. එය විසිතුරු කිසිවක් නොකරයි, නමුත් එය ගැලපෙන අතර සමහර විට අවුරුදු 10 ක් හෝ ඊට වැඩි කාලයක් තිබේද?
බ්‍රෙන්ඩන් ලෝන්ග්

15

ඉහත සාකච්ඡා කර ඇති හේතු සියල්ලටම මම එකඟ වෙමි. කෙසේ වෙතත් මෙහි සිටින බොහෝ දෙනෙක් පවසා ඇත්තේ Qt භාවිතා නොකරන බවයි. මම එයට එකඟ නොවෙමි, මන්ද අද වන විට බහුලව භාවිතා වන සියලුම භාෂා (ජාවා, සී # සහ පයිතන්) තරමක් ඉහළින් තබා ඇති බැවිනි.

දෙවනුව, Qt විසින් C ++ සමඟ ක්‍රමලේඛනය එතරම් පහසු සහ forward ජුව ඉදිරියට ගෙන යන අතර එය භාවිතා කරන අමතර සම්පත් සඳහා එය සෑදී ඇත. සම්මත C ++ ට වඩා Qt වලින් ලියා ඇති කොන්සෝල යෙදුම් කිහිපයක් මට හමු වී ඇත්තේ ඒවා ලිවිය හැකි පහසුව නිසාය.

Qt හි tivity ලදායිතාව C / C ++ ට වඩා වැඩි නමුත් පයිතන් වැනි භාෂාවන්ට වඩා අඩු බව මම කියමි.


2
මම හිතන්නේ ඒ සියල්ල පුද්ගලයාගේ අත්දැකීම් වලට සාපේක්ෂයි, මන්ද මට C ++ 14 හි OK කේත කළ හැකි නමුත්, මම යම් Qt කේතයක් දෙස බලන සෑම අවස්ථාවකම එය එකම භාෂාවක් ලෙස හඳුනා ගැනීමට වෙහෙස මහන්සි විය යුතුය ... එබැවින් මම නිසැකවම දනිමි ඔබ මෙහි ඇඟවුම් කරන්නේ ඒකමතික produc ලදායිතා බූස්ටරය යැයි නොසිතන්න.
underscore_d

1
++underscore_d පැහැදිලිවම ඔබ C ++ හොඳින් දන්නා අතර ඔබ Qt නොදන්නේ නම්, ඔබ දෙවැන්න සමඟ වඩා tive ලදායී නොවනු ඇත. නමුත් ඔබ C ++ සහ Qt යන දෙකම දැනගත් විට, රාමුව සැබවින්ම බොහෝ දේ පහසු සහ ඉක්මණින් ක්‍රියාත්මක කිරීමට සලස්වයි (C ++ 11, 14 යනාදිය පරතරය පුරවන නමුත් තවමත් සම්පූර්ණයෙන් නොවේ).
ymoreau

11

මෙය අවංකවම ගිනිදැල් යුද්ධයක් ආරම්භ කිරීමේ උත්සාහයක් නොවේ, මට අවශ්‍ය වූයේ කරුණු කිහිපයක් ආමන්ත්‍රණය කිරීමට ය.

Qt වඩාත් පුළුල් ලෙස භාවිතා නොකිරීමට සැබෑ හේතුව එය C ++ වන අතර ඩෙස්ක්ටොප් යෙදුම් සඳහා අඩු පුද්ගලයින් c ++ භාවිතා කිරීමයි.

Qt යනු C ++ පුස්තකාලයක් නොවේ. එයට වෙනම සම්පාදන පියවරක් අවශ්‍ය වන අතර එමඟින් අනෙකුත් බොහෝ පුස්තකාල සමඟ සසඳන විට ගොඩනැගීමේ ක්‍රියාවලිය වඩාත් සංකීර්ණ වේ.

දෘශ්‍ය චිත්‍රාගාරය සඳහා වන vs-addin ස්වයංක්‍රීයව Qt හි විධාන රේඛා ක්‍රියාවලියක් සිදු කරයි. MFC සඳහා දෙබස් තැනීම සඳහා භාවිතා කරන සම්පත් සම්පාදකයා ද වෙනම පියවරකි, නමුත් එය තවමත් c ++ ය.

Qt යනු විශාල ප්‍රභවයක් වන අතර, එය සම්පාදනය කිරීමට පෙර ඔබ භාවිතා කරන ඕනෑම යන්ත්‍රයක තිබිය යුතුය. මෙමඟින් ගොඩනැඟීමේ පරිසරයක් සැකසීම වඩාත් වෙහෙසකාරී විය හැකිය.

දෘශ්‍ය චිත්‍රාගාරයේ සෑම අනුවාදයක් සඳහාම ද්විමය බාගත කිරීමක් ඇති අතර ප්‍රභවයෙන් ගොඩ නැගීම තනි විධානයකි. SDK ප්‍රභව ප්‍රමාණය මේ දිනවල විශාල ගනුදෙනුවක් බව මට නොපෙනේ. දෘශ්‍ය චිත්‍රාගාරය දැන් ඔබට තෝරා ගැනීමට සහ තෝරා ගැනීමට ඉඩ දෙනවාට වඩා සියලු C ++ ලිබ්ස් ස්ථාපනය කරයි, එහි ප්‍රති comp ලයක් ලෙස සම්පාදකයාගේ ස්ථාපන ප්‍රමාණය> 1Gb වේ.

එය ලබා ගත හැක්කේ LGPL යටතේ පමණි, එමඟින් වඩා සීමිත හෝ අඩු සීමිත බලපත්‍රයක් යටතේ මුදා හැරීමට අවශ්‍ය වූ විට තනි ද්විමය යෙදවීම භාවිතා කිරීම දුෂ්කර කරයි.

LGPL අදාළ වන්නේ lib වලට පමණි, එය ඔබගේ කේතයට බලපාන්නේ නැත. ඔව්, එයින් අදහස් වන්නේ ඔබ එක් ද්විමය (ඔබ ගෙවන්නේ නැත්නම්) වෙනුවට ඩීඑල්එල් නැව්ගත කළ යුතු බවයි, නමුත් ඔබට ජාවා ධාවන වේලාවක් හෝ .නෙට් යාවත්කාලීනයක් බාගත කළ යුතු ලෝකයක මෙය ඉතා විශාල ගනුදෙනුවක් නොවේ. තනි ඒබීඅයි සමඟ වේදිකාවල ඇති ගැටළුවක් ද අඩු බැවින් අනෙක් Qt යෙදුම් වලට ලිබ්ස් බෙදා ගත හැකිය.

සමහර අවස්ථාවලදී, එය ස්වදේශීය වැඩසටහන් මෙන් පෙනෙන්නේ නැත. විවිධ දෘශ්‍ය මෝස්තර හේතුන් මත, සියලු වේදිකා සඳහා තනි UI එකක් නිර්මාණය කිරීම සහජයෙන්ම යන්ත්‍රයෙන් යන්ත්‍රයට ගෙන යන විට නිවැරදිව පෙනෙන්නේ නැත.

එය ස්වදේශීය විජට් සහ තේමාවන් භාවිතා කිරීමට නියමිතය. මම බොහෝ දුරට තාක්‍ෂණික යෙදුම් කරන බව පිළිගත යුතුය, එබැවින් මගේ පරිශීලකයින් විලාසිතාව ගැන එතරම් තැකීමක් නොකරයි. විශේෂයෙන් කවුළු මත සෑම දෙයක්ම ස්මාර්ට්ෆෝන් විජට් එකක් ලෙස තබා ගැනීමේ නව විලාසිතාව යන්නෙන් අදහස් කරන්නේ කෙසේ හෝ ප්‍රමිතියකට වඩා අඩුවෙන් පවතින බවයි.


1
විශාල මෘදුකාංග සමාගම් විශාල ප්‍රමාණයක් C ++ හි වාණිජ යෙදුම් සාදයි, නමුත් QT භාවිතා කරන බොහෝ දේ ගැන මම නොදනිමි. එබැවින්, C ++ නොවන සංවර්ධකයින් QT මඟ හැරිය හැකි බව මා වටහාගෙන සිටියද, ඔබ C ++ යෙදුමක් ලියන විට පවා QT වළක්වා ගැනීමට වෙනත් හේතු තිබේ, එය පෙනේ. ඇත්ත වශයෙන්ම, මට වරදක් සොයාගත නොහැකි හරස් වේදිකා භාෂාවක් සහ GUI මෙවලම් කට්ටලයක් නොමැත. හරස් වේදිකා සංවර්ධනය JUST PLAIN HARD බවත්, එය හොඳින් කිරීම කිසි විටෙක පහසු හෝ නිදහස් නොවන බවත්, QT පොරොන්දුව (ඔබේ GUI එක වරක් ලියන්න සහ සෑම තැනකම GUI නැවත භාවිතා කරන්න) ප්‍රමාණවත් නොවන බවත් පෙනේ.
වොරන් පී

බොහෝ ඩෙස්ක්ටොප් සී ++ මෘදුකාංග එක්කෝ එම්එෆ්සී හි ඇත්තේ එය වසර 20 කට පෙර ආරම්භ වූ නිසා හෝ එම්එෆ්සී (උදා: එම්එස්-ඔෆිස් හෝ ඔටෝකාඩ්) වළක්වා ගැනීම සඳහා අවුරුදු 20 කට පෙර ආරම්භ කළ අභ්‍යන්තර මෙවලම් කට්ටලයක් භාවිතා කරන බැවිනි. ඩබ්ලිව්පීඑෆ් සමඟ සී ++ / සීඑල්ආර් හි බොහෝ දේ ලියා ඇති බවට මට සැකයි. නමුත් හරස් වේදිකා සලකා බැලීම් නොමැතිව වුවද Qt හොඳම (හෝ අවම වශයෙන් නරකම!) ඩෙස්ක්ටොප් මෙවලම් කට්ටලය ලෙස මට පෙනේ. බොහෝ මිනිසුන් මෙන් අපිත් වෙබ්බි ඉදිරිපස කෙළවරට (සමහරවිට QtQuick / QML වලින්) සහ C ++ සේවාදායක පසුබිමකට ගමන් කරන්නෙමු - එය බොහෝ විට Qt සං als ා / තව් භාවිතා කරනු ඇත, නමුත් ගයි නැත
මාටින් බෙකට්

මම එකඟයි. අවම නරකම. වින්ඩෝස් පමණක් යෙදුම් වල පවා මම MFC ගැටළු වලට වඩා QT ගැටළු නිරාකරණය කිරීමට කැමැත්තෙමි.
වොරන් පී

Ar වොරන්පී - ඔව්, එම්එෆ්සී හි නැතිවී ඇති සියලුම දේ සඳහා කේත ප්‍රොජෙක්ට් සෙවීම මට මග හැරෙන්නේ නැත. එම්එස්එෆ්ටී හි දේශීය කේතයට ඇති නව ආදරය සමඟ - ඔවුන් ගුයි ලිවීම පහසු කිරීම සඳහා බොහෝ දේ කර නැත.
මාටින් බෙකට්

7

හේතුව සරලයි: එයට සියලු ප්‍රධාන ධාරාවේ භාෂාවන්ට හොඳ බැඳීමක් නොමැති අතර, එය සෑම විටම අත ළඟ ඇති රැකියාව සඳහා සුදුසු නොවේ .

කාර්යය සඳහා නිවැරදි මෙවලම භාවිතා කරන්න. මම සරල විධාන රේඛා යෙදුමක් ලියන්නේ නම්, ඒ සඳහා මම Qt සමඟ එය පුපුරවා හරින්නේ ඇයි?

වඩාත් පොදු පිළිතුරක් ලෙස (මා මෙහි අදාළ බැවින් මට දිය හැකි), සමහර ක්‍රමලේඛකයින් කිසි විටෙකත් එය අතහැර දමා එය භාවිතා කිරීමට තීරණය නොකරනු ඇත. සමහර අවස්ථා වලදී ක්‍රමලේඛකයා කිසි විටෙකත් ඒ සඳහා අවශ්‍යතාවයක් සොයාගෙන ඒ පිළිබඳව සොයා බැලුවේ නැත.


1
නමුත් Qt මඟින් කොන්සෝල යෙදුම පමණක් ලිවීමේ හැකියාව ලබා දෙයි. එසේ නොවේ ද?
Dehumanizer

9
EDehumanizer: මට කිසිම අදහසක් නැහැ. නමුත් මම එය කුඩා උපයෝගිතා මෙවලමක් සඳහා භාවිතා කරන්නේ ඇයි? සම්මත C ++ වලින් යෙදුම සුළු වශයෙන් ලිවිය හැකි විට එයින් මට ලැබෙන ප්‍රයෝජනය කුමක්ද? ඔබ පුස්තකාලයක් භාවිතා කිරීමට හේතුවක් සොයන බව පෙනේ , එය ක්‍රමලේඛයට පසුගාමී ක්‍රමයකි.
කක්ෂයේ සැහැල්ලු ධාවන තරඟ

12
Ehehumanizer: මම කී පරිදි, එය පසුගාමී ප්‍රවේශයකි. ඔබ පුස්තකාලයක අවශ්‍යතාවයක් සොයාගත් විට, ඔබ දැන ගනු ඇත, එවිට ඔබට ගොස් කිහිපයක් උත්සාහ කර ඔබගේ අවශ්‍යතාවයට වඩා හොඳ කුමක්දැයි බලන්න. ඔබට භාවිත නඩුවක් නොමැති විට පුස්තකාලයක් පිළිබඳ මතය රැස් කිරීමට උත්සාහ කිරීම මෝඩයාගේ වරදකි.
කක්ෂයේ සැහැල්ලු ධාවන තරඟ

3
"මම සරල විධාන රේඛා යෙදුමක් ලියන්නේ නම්, ඒ සඳහා මම Qt සමඟ එය
පුපුරවා හරින්නේ ඇයි

4
ExampleDehumanizer උදාහරණයක් ලෙස ඔබට ලිපිගොනු, xml, යුනිකෝඩ්, json, regexp, සමගාමී, දත්ත සමුදා යනාදිය සමඟ ගනුදෙනු කිරීමට සිදු වූ විට, තෙවන පාර්ශවීය පුස්තකාල බාගත කිරීමට, සම්මත කර ගැනීමට, නඩත්තු කිරීමට අවශ්‍ය නැත.
වැලන්ටින් හයිනිට්ස්

5

ඔබ සොයන්නේ ඔබේ නිෂ්පාදනය ගැන උත්සුක සිටින විට Qt වැනි රාමුව සුදුසු එකම ඔබගේ නිෂ්පාදන බලා වඩා සියලු වේදිකා මත අයිතිය සියලු වේදිකා මත. මේ දිනවල වැඩි වැඩියෙන් එම යෙදුම් වෙබ් පාදක තාක්ෂණයන් වෙත ගමන් කරයි.


4

Qt සමඟ වැඩ කිරීමට හොඳ රාමුවක් බව මම එකඟ වෙමි. තවමත්, මට එය සමඟ ගැටළු ගණනාවක් තිබේ:

  1. එය C ++ වලින් ලියා ඇති අතර එය සැබවින්ම පහත් මට්ටමේ භාෂාවකි. එය C ++ බව පමණක් අනෙක් භාෂාවලින් ලියන ලද රාමු සමඟ සසඳන විට සෑම Qt ක්‍රමලේඛකයෙකුටම සැලකිය යුතු ලෙස tive ලදායී වනු ඇත. GUI සංවර්ධන භාෂාවක් ලෙස C ++ සමඟ ඇති මගේ ප්‍රධාන හරක් මස් වන්නේ එයට ස්වයංක්‍රීය මතක කළමනාකරණය පිළිබඳ කිසිදු අදහසක් නොමැති වීමයි. එමඟින් සංවර්ධන ක්‍රියාවලිය දෝෂ වලට ගොදුරු වේ. එය ස්වයං විචාරණයක් නොවේ, එමඟින් නිදොස් කිරීම බොහෝ අපහසු වේ. අනෙකුත් බොහෝ ප්‍රධාන GUI මෙවලම් කට්ටලවල ස්වයංක්‍රීය මතක කළමනාකරණය සහ ස්වයං විමර්ශනය පිළිබඳ යම් අදහසක් ඇත.
  2. සෑම හරස් වේදිකා මෙවලම් කට්ටලයක්ම ගැටළුවෙන් පීඩා විඳින්නේ එයට සහය දැක්විය හැකි සියලුම වේදිකාවල අවම පොදු හරය ක්‍රියාත්මක කළ හැකි බැවිනි. එය, සහ විවිධ වේදිකා වල විවිධ UI මාර්ගෝපදේශයන් සමස්තයක් ලෙස හරස් වේදිකා GUI වල යෝග්‍යතාවය ප්‍රශ්න කරයි.
  3. Qt බොහෝ දුරට කේන්ද්‍රගත වී ඇත්තේ ඔබගේ සියලු UI කේතනය කිරීම මත ය. ඔබේ UI හි සමහර කොටස් තැනීම සඳහා ඔබට QtDesigner භාවිතා කළ හැකි වුවද , (කොකෝවා / Obj-C) අතුරුමුහුණත් සාදන්නා හෝ .නෙට් මෙවලම් සමඟ සැසඳීමේදී එය බරපතල ලෙස අඩු ය.
  4. Qt හි පහත් මට්ටමේ යෙදුම් ක්‍රියාකාරිත්වයන් රාශියක් ඇතුළත් වුවද, එය එක්තරා වේදිකාවක් සඳහා අතින් සකස් කර ඇති රාමුවක් තිබීම හා සැසඳිය නොහැක. වින්ඩෝස් සහ ඕඑස්එක්ස් යන දෙවර්ගයේම දේශීය මෙහෙයුම් පද්ධති පුස්තකාල Qt ක්‍රියාත්මක කිරීමට වඩා සැලකිය යුතු තරම් බලවත් ය. (ශ්‍රව්‍ය රාමු, පහත් මට්ටමේ ගොනු පද්ධති ප්‍රවේශය ආදිය සිතන්න)

වේගවත් යෙදුම් මූලාකෘතිකරණය හෝ අභ්‍යන්තර යෙදුම් සඳහා පයික්ට් භාවිතා කිරීමට මම කැමතියි. සියළුම කේතීකරණ කටයුතු සඳහා පයිතන් භාවිතා කිරීම C ++ සමඟ ඇති ගැටළු සමනය කරන අතර ඇත්ත වශයෙන්ම Qt ඉතා ප්‍රසන්න ස්ථානයක් බවට පත් කරයි.


සමහර අදහස් වලට ප්‍රතිචාර වශයෙන් සංස්කරණය කරන්න:

Q ++ C ++ හි ලියා ඇති බව මා ලියන විට, මම Qt ගැන එතරම් පැමිණිලි කළේ නැත, නමුත් එය ජීවත් වන පරිසරය ගැන වැඩි යමක් විය. Qt තමන්ගේම සම්පත් ඉතා හොඳින් කළමනාකරණය කරන බව සත්‍යයකි, නමුත් ඔබගේ GUI හා සම්බන්ධ සියලු නමුත් but- Qt නොවන කේතය C ++ වලින් ද ලිවිය යුතුය. එහි දී පවා Qt ඉතා හොඳ මෙවලම් සපයයි, නමුත් අවසානයේ ඔබට එම මට්ටමේ C ++ සමඟ කටයුතු කළ යුතුය. Qt විසින් C ++ දරාගත හැකි නමුත් එය තවමත් C ++ වේ.

ස්වයං විග්‍රහය සම්බන්ධයෙන් ගත් කල, මා අදහස් කරන්නේ මෙයයි: නිදොස් කිරීම සඳහා ඇති දුෂ්කරම අවස්ථා නම්, ඔබ යම් වස්තුවකට දර්ශකයක් ඇති විට ඔබ සිතන ආකාරයට හැසිරෙන්නේ නැත. C ++ සමඟින්, ඔබේ නිදොස්කරණය කරන්නාට එම වස්තුව තුළ මඳක් බැලීමට හැකිය (එය තුන්වන ස්ථානයේ තොරතුරු තිබේ නම්), නමුත් එය පවා සැමවිටම ක්‍රියා නොකරයි. අනෙක් අතට, එකම තත්වයක කොකෝවා ගන්න. කොකෝවා / ඕබ්-සී හි, ඔබට නිදොස්කරණය තුළම වස්තුවකට පණිවිඩ ('ඇමතුම් කාර්යයන්') යැවිය හැකිය. ඔබට වස්තූන්ගේ තත්වය වෙනස් කළ හැකිය, ඔබට එහි ගුණාංග විමසීමට හැකිය, ඔබට එහි වර්ගය සහ එහි ක්‍රියාකාරී නම් ඉල්ලිය හැකිය ... මෙය නිදොස් කිරීම වඩාත් පහසු කරයි. Qt / C ++ ඊට ආසන්න කිසිවක් නැත.


12
1. මතක කළමනාකරණය ගැන Qt සැලකිලිමත් වන අතර, එක් එක් 'නව' පසු 'මකන්න' යනුවෙන් ඔබ ඇමතිය යුතු නැත. 1 අ. C ++ යනු පහත් මට්ටමේ භාෂාවක් නොවේ, එය පහත් මට්ටමේ 'හැකියාවන්' සහිත ඉහළ මට්ටමේ භාෂාවකි. 3. මම එකඟ වෙමි, නමුත් Qt විසින් QtDesigner සමඟ සහ 'සරල කේතය' සමඟ එකවර UI එකක් සෑදීමට සපයයි. 4. නැවත එකඟ වන්න, නමුත් Qt ස්වදේශීය API භාවිතා කිරීමට ද සපයයි.
Dehumanizer

12
ඔබේ ස්ථානයට nr 1. මම හිතන්නේ c ++ ට අර්ධ ස්වයංක්‍රීය මතක කළමණාකරනයක් ඇත: ඔබ std :: auto_ptr හෝ boost :: shared_ptr වැනි ස්මාර්ට් පොයින්ටර් භාවිතා කරන්නේ නම්, ඔබට සාමාන්‍යයෙන් මතකය නිදහස් කිරීම ගැන සැලකිලිමත් විය යුතු නැත. මේ ආකාරයේ බහාලුම් වෙනත් සම්පත් සඳහාද සෑදිය හැකිය (ලිපිගොනු, නිදහස් කළ යුතු පද්ධති සම්පත්). RAII- රටාව භාවිතා කිරීම මතක කළමනාකරණයට බෙහෙවින් උපකාරී වන අතර එය ඔබ තුළට වැඩෙත්ම ඔබට මතකය ගැන කරදර විය යුතු නැත.
ඩියෝ

8
"එය C ++ බව පමණක් අනෙක් භාෂාවලින් ලියන ලද රාමු සමඟ සසඳන විට සෑම Qt ක්‍රමලේඛකයෙකුටම සැලකිය යුතු ලෙස tive ලදායී වනු ඇත." [උපුටා දැක්වීම අවශ්‍යයි]
නේතන් ඔස්මාන්

4
K එස්.කේ.-තර්කනය: ඔබේ තුන්වන වාක්‍යයේ ඇති සියලුම වචන මට වැටහී ඇතැයි මම සිතුවත්, ඔබ කියන්නේ කුමක්දැයි මට අදහසක් නැත. “වියුක්ත කැප් මට්ටම” යනු කුමක්ද? "පහත් මට්ටමේ භාෂාව" පිළිබඳ විකිපීඩියා අර්ථ දැක්වීම අනුව ඔබේ පළමු වාක්‍යය වැරදිය.
ඩේවිඩ් තෝර්න්ලි

6
K එස්.කේ.-තර්කනය: අච්චු පරිවෘත්තීයකරණය ටියුරින්-සම්පුර්ණ වන අතර, එයින් ප්‍රයෝජන ගැනීමට තරම් බුද්ධිමත් හා දැනුමක් ඇති අය සිටිති. RAII යනු විශාල කසළ එකතු කිරීමක් නොවේ, නමුත් එය සියලු ආකාරයේ සම්පත් සඳහා වැඩියෙන් හෝ අඩුවෙන් වැඩ කිරීම ඒ සඳහා හේතු වේ. දැන්, විශේෂයෙන්, ජාවා හි C ++ නොව ක්‍රියාත්මක වන්නේ කුමන ආකාරයේ වියුක්ත කිරීමක් ද?
ඩේවිඩ් තෝර්න්ලි

4

මගේ මතය අනුව, C ++ ක්‍රමලේඛනය ඉගෙනීම ඒවායේ සංකීර්ණත්වය සැඟවිය හැකි වෙනත් භාෂාවලට වැටීමට වඩා සරල වන අතර පසුබිමේ සැබවින්ම සිදුවන්නේ කුමක්ද යන්න ක්‍රමලේඛකයා නොදනී. අනෙක් අතට Qt, C ++ ට වඩා යම් ප්‍රතිලාභයක් එකතු කරයි, එය ස්වදේශික C ++ ට වඩා ඉහළ මට්ටමක පවතී. මේ අනුව Qt C ++ යනු පහත් මට්ටමේ කාර්යයන් හෝ ඉහළ මට්ටමේ කාර්යයන් එකම ආකාරයකින් සංවර්ධනය කිරීමට කැමති අයට හොඳ රාමුවකි. C ++ යනු (සමහර භාවිතයන් අනුව) සංකීර්ණ හා සරල භාෂාවකි. එය සමඟ අභියෝග නොකිරීමට කැමති අය සඳහා සංකීර්ණය, එයට කැමති කෙනෙකුට සරල ය. එහි සංකීර්ණත්වය නිසා එය අත් නොහරින්න!


3

මම ඇත්තටම Qt වලට කැමතියි, නමුත් එය බොහෝ යෙදුම් සඳහා ටිකක් බරයි. සමහර විට ඔබට එම මට්ටමේ සංකීර්ණත්වය අවශ්‍ය නොවේ. සමහර විට ඔබට Qt හි සියලු පොදු කාර්යයන් නොමැතිව සරල දෙයක් අවශ්‍ය වේ. සෑම යෙදුමක්ම සිදුවීම් මත ධාවනය කිරීම අවශ්‍ය නොවන අතර C ++ සාධාරණ සැකිලි සමූහයක් සපයයි. බූස්ට් තවත් ඉතා හොඳ කට්ටලයක් සපයන අතර QT විසින් කරන පහත් මට්ටමේ ක්‍රියාකාරිත්වය (ගොනුව, සොකට්, කළමනාකරණය කළ දර්ශක ආදිය) ඇතුළත් වේ.

වෙනත් යෙදුම් සඳහා GPL, LGPL හෝ Qt හි වාණිජ බලපත්‍රය සමඟ හොඳින් ක්‍රියා නොකරන බලපත්‍ර අවශ්‍යතා ඇත. ජීපීඑල් වාණිජ මෘදුකාංග සඳහා නුසුදුසු ය. එල්ජීපීඑල් ස්ථිතිකව සම්බන්ධිත මෘදුකාංග සඳහා නුසුදුසු වන අතර වාණිජ බලපත්‍රයට මුදල් වැය වේ - බොහෝ දෙනෙක් ගෙවීමට අකමැති දෙයක්.

සමහරුන්ට Qt වැනි සංකීර්ණ පුස්තකාලවලට ඉඩ නොදෙන ආරක්ෂාව හෝ ස්ථාවරත්වය පිළිබඳ සලකා බැලීම් තිබේ.

ඔබේ ප්‍රභවයන් පෙර සැකසීමට ඔබ moc ධාවනය කළ යුතුය. එය විශාල ගැටළුවක් නොවේ, නමුත් එය නව පරිශීලකයාට බියකරු විය හැකිය. බොහෝ ක්‍රමලේඛකයින් සිතන්නේ ඔබ Qt සමඟ qmake භාවිතා කළ යුතු බවයි, නමුත් එය වැරදි නාමයකි. Qt වෙනත් ගොඩනැඟිලි පද්ධති වලට පහසුවෙන් සම්බන්ධ කළ හැකිය.

සමහර ඉලක්ක ඉතා මතකය හෝ CPU සීමා කර ඇත.

එහි වේදිකා-විශේෂිත ගොචා කිහිපයක් තිබේ. එම ගොචා වලින් බොහොමයක් ලේඛනගත නොවේ. ප්‍රමාණවත් තරම් විශාල යෙදුමක් සාදන්න, ඔබ ඒවා වෙතට ගොස් සිදුවන්නේ කුමක්දැයි කල්පනා කරනු ඇත (වියාචනය, මා අවසන් වරට කෝපයෙන් Qt භාවිතා කළේ මාස 18 කට පෙරය, එබැවින් එය වැඩිදියුණු වන්නට ඇත).

එය C ++ පමණි. වෙනත් භාෂා බන්ධන පවතී, නමුත් ඒවා ඔබට Qt සඳහා අවශ්‍ය බොහෝ ක්‍රියාකාරකම් සැඟවීමට හෝ දුර්වල ලෙස නිරාවරණය කිරීමට නැඹුරු වේ.

Qt භාවිතා නොකිරීමට හේතු රාශියක් ඇත, ඒ නිසා විකල්ප තිබේ. ඔබ සතුව ඇත්තේ මිටියක් නම් සෑම ගැටළුවක්ම නියපොතු මෙන් දිස් වේ.


3

වැදගත්ම නමුත් සඳහන් නොකළ දෙය. විශාල ව්‍යාපෘතියක එක් දෙයක් බොහෝ ගැටලු සහ අනවශ්‍ය කේත ඇති කරයි. Qt හි සං signal ා තව් යාන්ත්‍රණ අකාර්යක්ෂමයි. Qt විජට් මඟින් සිදුවීම් සරල විජට් සඳහා අවශ්‍ය සං als ා ලබා නොදේ. උදාහරණයක් ලෙස ඔබට onHover, onMouseEnter, onMouseLeave, onKeyReleased, onLostFocus, onGainFocus සහ යනාදිය සඳහා සං als ා සැකසිය නොහැක. QTreeWidget වැනි වඩාත් සංකීර්ණ විජට් පවා ඉතා සරල නිෂ් less ල සං als ා එකක් හෝ දෙකක් සපයයි.

ඔව්, ඔබට සිදුවීම් භාවිතා කළ හැකිය !!! අභිරුචි සිදුවීමක් සහිත එක් එක් විජට් සඳහා ඔබ නව පන්තියක් නිර්මාණය කර ඇත. මෙය විශාල කාර්යක්ෂමතාවයක් නැති වී ඇත;

  • සෑම වෙනස් කළ විජට් වස්තු සිද්ධියක්ම ඔබ නැවත ලිවීය.
  • ඔබට සියලු Qt Designer දේවල් නැති වේ. අභිරුචි සිදුවීම් සමඟ ඔබ සෑම විජට් එකක්ම ප්‍රවර්ධනය කළ යුතුය.
  • ව්‍යාපෘතිය විශාල වූ අතර නඩත්තු කිරීමට අපහසු විය.
  • මේ නිසා ඔබ qt අකමැති වීමට පටන් ගත්තා. .Net නියෝජිතයින්ට ලබා දෙන්නේ කෙසේද, සං signal ා තව් වලට වඩා එය වඩා හොඳ වන්නේ කෙසේද, .net සංරචක (විජට්) සාමාන්‍යයෙන් ඔබට සිතාගත හැකි සෑම සිදුවීමක්ම ලබා දෙන්නේ කෙසේද යන්න ගැන කතා කිරීමට පටන් ගනී. සහ යනාදිය.

මගේ විද්‍යාලයේ එක් අයෙක් සෑම කොම්බෝ බොක්ස් විජට් එකක් සඳහාම නව කොම්බෝ බොක්ස් පංතියක් සාදා ඇත. සත්ය කථාව...

කෙසේ වෙතත්, Qt යනු මෙතෙක් පහළ බැසීම් සහිත හොඳම C ++ UI රාමුවයි.


සිදුවීම් සම්බන්ධයෙන් සහ නව පන්ති නිර්මාණය කිරීම: ඔබට ඒවාට ප්‍රතිචාර දැක්වීමට අවශ්‍ය පන්තිවල සිදුවීම් පෙරහන් භාවිතා කළ හැකිය.
MrFox

"ඔව්, ඔබට සිදුවීම් භාවිතා කළ හැකි නමුත් !!! ඔබ එක් එක් විජට් සඳහා අභිරුචි සිදුවීම් සමඟ නව පංතියක් නිර්මාණය කර ඇත. මෙය විශාල කාර්යක්ෂමතාවයක් නැති වී ඇත;" - හරියටම නැහැ. මම අවසන් කරන්නේ bool eventFilter සමඟ විජට් කිහිපයක් හසුරුවන අතර පසුව සියලුම ළමා විජට් මත EventFilter (මෙය) ස්ථාපනය කරන්න. මෙය කාර්යක්ෂමතාව සහ ක්‍රමලේඛන ක්‍රියාකාරිත්වය නැති නොකරයි! ඇත්ත වශයෙන්ම මම කිසි විටෙකත් "ප්‍රවර්ධනය කරන ලද විජට්" භාවිතා නොකරමි ... මම සරල හිස් විජට් එකක් අතහැර, මෙය eventFilter ලෙස ස්ථාපනය කර මගේ බොහෝ සිදුවීම් මගේ ප්‍රධාන සීපීපී පන්තිය තුළ නැවත ක්‍රියාත්මක කරමි. එය උත්සාහ කරන්න, වේදනාවක් නොවීය :) සෑම
විටම

2

ඇත්ත හේතුව තාක්ෂණික නොවේ.

මිනිසුන් වෙනස් වේ. ඔවුන්ගේ තේරීම් ද එසේමය. ඒකාකාරිත්වය මිනිස් ලක්ෂණයක් නොවේ.


සියලුම මිනිසුන් කකුල් මත ඇවිදින්නේ ඒ නිසාද? හොඳයි, අවම වශයෙන් කකුල් ඇති අය ...
dtech
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.