SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
67 Using the Form Designer 784
67.1 The Designer Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
67.2 The Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
67.3 The Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
67.4 Running Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
67.5 Events Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
67.6 Keyboard Shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789
67.7 Menubar Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789
67.8 Window Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
67.9 Entering Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
67.10 Using Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
67.11 More Samples and Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
68 Multi-language Applications 792
68.1 Using String2Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
68.2 Form Designer Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
68.3 Forms Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794
69 Scope Rules for Variables and Attributes 796
69.1 Three Scopes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
69.2 Defining Variables and Variables Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
69.3 How Ring find the variable? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
69.4 Using Object.Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
69.5 The Self Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
69.6 How Ring Define Variables and Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
69.7 Conflict between Global Variables and Class Attributes . . . . . . . . . . . . . . . . . . . . . . . . . 798
69.8 Conflict between Class Attributes and Local Variables . . . . . . . . . . . . . . . . . . . . . . . . . 799
69.9 Using Braces to access objects inside Class Methods . . . . . . . . . . . . . . . . . . . . . . . . . . 800
69.10 Accessing the class attributes from braces inside class methods . . . . . . . . . . . . . . . . . . . . 803
69.11 Creating a Class for each Window in GUI applications . . . . . . . . . . . . . . . . . . . . . . . . . 804
69.12 Conflict between self inside braces and self in the class region . . . . . . . . . . . . . . . . . . . . . 805
69.13 Using braces to escape from the current object scope . . . . . . . . . . . . . . . . . . . . . . . . . . 808
69.14 The For Loops uses the local scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809
69.15 Summary of Scope Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809
70 Scope Rules for Functions and Methods 812
70.1 How Ring find the Functions and Methods? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812
70.2 Example about Sharing Names between Functions and Methods . . . . . . . . . . . . . . . . . . . . 813
70.3 Calling a function sharing the name with a method in the current class . . . . . . . . . . . . . . . . . 814
71 Syntax Flexibility 816
71.1 Change Language Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
71.2 Change Language Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817
71.3 Load Syntax Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
71.4 Using “()” around the function parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
71.5 Using Semi-colon after and between statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
71.6 Using $ and @ in the start of the variable name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
71.7 Using the ‘elseif’ keyword as ‘but’ in if statement . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
71.8 Using the ‘else’ keyword as ‘other’ in switch statement . . . . . . . . . . . . . . . . . . . . . . . . . 821
71.9 Using the ‘end’ keyword in different control structures . . . . . . . . . . . . . . . . . . . . . . . . . 821
71.10 Using braces to start and end different control structures . . . . . . . . . . . . . . . . . . . . . . . . 822
71.11 Using ‘put’ and ‘get’ as ‘see’ and ‘give’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
71.12 Using ‘case’ as ‘on’ in switch statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
71.13 Using ‘def’ as ‘func’ in functions/methods definition . . . . . . . . . . . . . . . . . . . . . . . . . . 824
71.14 Using braces { } in Packages/Classes/Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
xix
71.15 Using ‘end’ keyword after Packages/Classes/Functions . . . . . . . . . . . . . . . . . . . . . . . . . 824
71.16 Using ‘endpackage’/’endclass’/’endfunc’ keywords after Packages/Classes/Functions . . . . . . . . 825
71.17 Ignore new lines after keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825
72 Introduction to the Type Hints Library 826
72.1 Why Type Hints? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
72.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
72.3 User Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
72.4 Using Types inside Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
72.5 Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
73 Command Line Options 829
73.1 Printing Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
73.2 Printing Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831
73.3 Printing Intermediate Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
73.4 Printing Final Intermediate Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838
73.5 CGI Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
73.6 No Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
73.7 Printing Instruction Operation Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
73.8 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
73.9 Generate Object File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843
74 Performance Tips 844
74.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
74.2 Creating Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846
74.3 Arithmetic Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
74.4 Using len() and For Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
74.5 Calling Functions and Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848
75 Distributing Ring Applications 850
75.1 Distributing Applications for Microsoft Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
75.2 Protecting the Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
75.3 The files ring.ring and ring.ringo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
75.4 Creating Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
75.5 Using C/C++ Compiler and Linker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
75.6 Distributing Applications and Games for Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
76 Distributing Ring Applications using Ring2EXE 852
76.1 Using Ring2EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
76.2 How Ring2EXE works? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
76.3 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
76.4 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
76.5 Building standalone console application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854
76.6 Distributing RingAllegro Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854
76.7 Distributing RingQt Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
76.8 Distributing Applications for Mobile using RingQt . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
76.9 Building the Cards Game for Mobile using RingQt . . . . . . . . . . . . . . . . . . . . . . . . . . . 856
76.10 Building the Weight History Application for Mobile using RingQt . . . . . . . . . . . . . . . . . . . 856
76.11 Building the Form Designer for Mobile using RingQt . . . . . . . . . . . . . . . . . . . . . . . . . 857
76.12 Creating the Qt resource file using Folder2qrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
76.13 Important Information about Ring2EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
77 Low Level Functions 861
77.1 callgc() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862
77.2 varptr() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862
xx
77.3 space() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
77.4 nullpointer() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
77.5 object2pointer() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
77.6 pointer2object() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
77.7 ispointer() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
77.8 ptrcmp() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
77.9 ringvm_cfunctionslist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
77.10 ringvm_functionslist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
77.11 ringvm_classeslist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
77.12 ringvm_packageslist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867
77.13 ringvm_memorylist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
77.14 ringvm_calllist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870
77.15 ringvm_fileslist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870
77.16 ringvm_settrace() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
77.17 ringvm_tracedata() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
77.18 ringvm_traceevent() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
77.19 ringvm_tracefunc() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
77.20 ringvm_scopescount() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
77.21 ringvm_evalinscope() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
77.22 ringvm_passerror() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
77.23 ringvm_hideerrormsg() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
77.24 ringvm_callfunc() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
77.25 Example - Using the Trace Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
77.26 Example - The Trace Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
77.27 ringvm_see() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881
77.28 ringvm_give() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881
77.29 ringvm_info() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881
78 The Trace Library and the Interactive Debugger 883
78.1 Loading the Trace library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
78.2 Trace All Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
78.3 Trace control flow between functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
78.4 Pass Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
78.5 Interactive Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
78.6 Execute Program Line by Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
78.7 BreakPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
78.8 Disable BreakPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
78.9 Using the Interactive Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
79 Embedding Ring in Ring 888
79.1 Embedding Ring in Ring without sharing the State . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
79.2 Serial Execution of Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
79.3 ring_state_setvar() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
79.4 ring_state_new() and ring_state_mainfile() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
79.5 Runtime Errors when Embedding Ring in Ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891
80 Extension using the C/C++ languages 892
80.1 ring_ext.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
80.2 ring_ext.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
80.3 Module Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893
80.4 Function Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894
80.5 Check Parameters Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894
80.6 Display Error Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
80.7 Check Parameters Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
xxi
80.8 Get Parameters Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
80.9 Return Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
80.10 Function Prototype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
80.11 Sin() Function Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
80.12 Fopen() and Fclose() Functions Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
80.13 Ring API - List Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
80.14 Ring API - String Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
80.15 MySQL_Columns() Function Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
80.16 Dynamic/Shared Libraries (DLL/So/Dylib) and LoadLib() function . . . . . . . . . . . . . . . . . . 900
80.17 Using RING_API_RETMANAGEDCPOINTER() . . . . . . . . . . . . . . . . . . . . . . . . . . . 901
81 Embedding Ring Language in C/C++ Programs 903
81.1 Ring State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
81.2 Ring State Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
81.3 Ring State Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
82 Code Generator for wrapping C/C++ Libraries 906
82.1 Using the tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
82.2 Configuration file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
82.3 Using the function prototype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
82.4 Adding code to the generated code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
82.5 Prefix for Functions Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
82.6 Generate function to wrap structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
82.7 Determine Structure Members Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
82.8 Defining Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
82.9 Register New Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
82.10 Writing comments in the configuration file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910
82.11 Executing code during code generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910
82.12 Enum and Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910
82.13 Filtering using Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
82.14 Constants Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
82.15 Configuration file for the Allegro Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
82.16 Threads Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913
82.17 Code Generator Rules for Wrapping C++ Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914
82.18 Using configuration file that wrap C++ Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915
82.19 Configuration file for the Qt Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915
82.20 Static Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
82.21 Loading Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
82.22 Managed Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
82.23 Configuration Files Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926
83 Create your first extension 927
83.1 Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
83.2 Steps to create the extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
83.3 Testing the extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
84 Frequently Asked Questions (FAQ) 929
84.1 Why do we need Yet Another Programming Language (YAPL)? . . . . . . . . . . . . . . . . . . . . 929
84.2 Why is Ring weakly typed? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
84.3 What are the advantages to using Ring over Lisp or Smalltalk? . . . . . . . . . . . . . . . . . . . . . 930
84.4 Why is Ring largely focussed on UI creation? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
84.5 Is Ring some sort of an improvement of PHP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
84.6 What are the advantages of using Ring over native C or C++? . . . . . . . . . . . . . . . . . . . . . 931
84.7 What is the difference between Ring and Python? And is Ring Open Source? . . . . . . . . . . . . . 931
84.8 What are the advantages to using Ring over Perl, PHP, Python or Ruby? . . . . . . . . . . . . . . . . 932
xxii
84.9 What are the advantages to using Ring over Tcl or Lua? . . . . . . . . . . . . . . . . . . . . . . . . 933
84.10 What are the advantages to using Ring over C# or Java? . . . . . . . . . . . . . . . . . . . . . . . . 933
84.11 The documentation says functional programming is supported, but then this happens? . . . . . . . . 933
84.12 Why the ability to define your own languages Instead of just handing over the syntax so you can parse
it using whatever code you like? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
84.13 Why you can specify the number of loops you want to break out of? . . . . . . . . . . . . . . . . . . 934
84.14 Why Ring uses ‘See’, ‘Give’, ‘But’ and ‘Ok’ Keywords? . . . . . . . . . . . . . . . . . . . . . . . . 934
84.15 What is the philosophy behind data types in Ring? . . . . . . . . . . . . . . . . . . . . . . . . . . . 935
84.16 What about the Boolean values in Ring? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935
84.17 What is the goal of including the “Main” function in Ring? . . . . . . . . . . . . . . . . . . . . . . . 936
84.18 Why the list index start from 1 in Ring? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937
84.19 Why Ring is not case-sensitive? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937
84.20 Why the Assignment operator uses Deep Copy? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938
84.21 Is there constructor methods in Ring? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
84.22 What happens when we create a new object? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
84.23 Can we use the attributes by accessing the Getter and Setter methods? . . . . . . . . . . . . . . . . . 940
84.24 Why should a search of global names be made while defining the class attributes? . . . . . . . . . . 941
84.25 Why Ring doesn’t avoid the conflict between Global Variables and Class Attributes Names? . . . . . 942
84.26 Where can I write a program and execute it? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943
84.27 How to get the file size using ftell() and fseek() functions? . . . . . . . . . . . . . . . . . . . . . . . 943
84.28 How to get the current source file path? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943
84.29 What about predefined parameters or optional parameters in functions? . . . . . . . . . . . . . . . . 943
84.30 How to print keys or values only in List/Dictionary? . . . . . . . . . . . . . . . . . . . . . . . . . . 944
84.31 Why I get a strange result when printing nl with lists? . . . . . . . . . . . . . . . . . . . . . . . . . 944
84.32 Could you explain the output of the StrCmp() function? . . . . . . . . . . . . . . . . . . . . . . . . 945
84.33 How to use many source code files in the project? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945
84.34 Why this example use the GetChar() twice? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946
84.35 How to use NULL and ISNULL() function? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947
84.36 How to print lists that contains objects? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
84.37 How to insert an item to the first position in the list? . . . . . . . . . . . . . . . . . . . . . . . . . . 949
84.38 How to print new lines and other characters? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949
84.39 Why we don’t use () after the qApp class name? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949
84.40 Why the window title bar is going outside the screen? . . . . . . . . . . . . . . . . . . . . . . . . . 950
84.41 How to create an array of buttons in GUI applications? . . . . . . . . . . . . . . . . . . . . . . . . . 950
84.42 How to Close a window then displaying another one? . . . . . . . . . . . . . . . . . . . . . . . . . . 951
84.43 How to create a Modal Window? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951
84.44 How can I disable maximize button and resize window? . . . . . . . . . . . . . . . . . . . . . . . . 952
84.45 How to use SQLite using ODBC? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953
84.46 Can I connect to dbase/harbour database? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954
84.47 Why setClickEvent() doesn’t see the object methods directly? . . . . . . . . . . . . . . . . . . . . . 955
84.48 Why I get Calling Function without definition Error? . . . . . . . . . . . . . . . . . . . . . . . . . . 955
84.49 Can Ring work on Windows XP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956
84.50 How to extend RingQt and add more classes? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956
84.51 How to add Combobox and other elements to the cells of a QTableWidget? . . . . . . . . . . . . . . 959
84.52 How to perform some manipulations on selected cells in QTableWidget? . . . . . . . . . . . . . . . 959
84.53 Which of 3 coding styles are commonly used or recommended by the community? . . . . . . . . . . 960
85 General Information 961
85.1 Ring Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961
85.2 Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961
85.3 Data Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962
86 Language Reference 965
86.1 Language Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965
xxiii
86.2 Language Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967
86.3 Compiler Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968
86.4 Runtime Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968
86.5 Environment Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 970
86.6 Language Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 970
86.7 Virtual Machine (VM) Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971
87 RingQt Classes Reference 978
87.1 CodeEditor Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978
87.2 QAbstractButton Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978
87.3 QAbstractItemView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979
87.4 QAbstractPrintDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
87.5 QAbstractScrollArea Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
87.6 QAbstractSlider Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982
87.7 QAbstractSocket Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983
87.8 QAbstractSpinBox Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984
87.9 QAction Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
87.10 QAllEvents Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 987
87.11 QApp Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991
87.12 QAxBase Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991
87.13 QAxObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993
87.14 QAxWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993
87.15 QBitmap Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993
87.16 QBluetoothAddress Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993
87.17 QBluetoothDeviceDiscoveryAgent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994
87.18 QBluetoothDeviceInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994
87.19 QBluetoothHostInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995
87.20 QBluetoothLocalDevice Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995
87.21 QBluetoothServer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
87.22 QBluetoothServiceDiscoveryAgent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
87.23 QBluetoothServiceInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997
87.24 QBluetoothSocket Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998
87.25 QBluetoothTransferManager Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999
87.26 QBluetoothTransferReply Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999
87.27 QBluetoothTransferRequest Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999
87.28 QBluetoothUuid Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000
87.29 QBoxLayout Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000
87.30 QBrush Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001
87.31 QBuffer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001
87.32 QButtonGroup Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001
87.33 QByteArray Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002
87.34 QCalendarWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004
87.35 QCamera Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005
87.36 QCameraImageCapture Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006
87.37 QCameraViewfinder Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007
87.38 QChar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007
87.39 QCheckBox Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009
87.40 QChildEvent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010
87.41 QClipboard Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010
87.42 QColor Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010
87.43 QColorDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013
87.44 QComboBox Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013
87.45 QCompleter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015
87.46 QCompleter2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016
xxiv
87.47 QCompleter3 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016
87.48 QCoreApplication Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016
87.49 QCursor Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018
87.50 QDate Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018
87.51 QDateEdit Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019
87.52 QDateTime Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019
87.53 QDateTimeEdit Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020
87.54 QDesktopServices Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021
87.55 QDesktopWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022
87.56 QDial Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022
87.57 QDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023
87.58 QDir Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023
87.59 QDirModel Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025
87.60 QDockWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026
87.61 QDrag Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027
87.62 QDragEnterEvent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027
87.63 QDragLeaveEvent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027
87.64 QDragMoveEvent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028
87.65 QDropEvent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028
87.66 QEvent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028
87.67 QFile Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029
87.68 QFile2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029
87.69 QFileDevice Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030
87.70 QFileDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030
87.71 QFileInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031
87.72 QFileSystemModel Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033
87.73 QFont Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034
87.74 QFontDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036
87.75 QFontMetrics Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036
87.76 QFrame Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1037
87.77 QFrame2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038
87.78 QFrame3 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038
87.79 QGeoAddress Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038
87.80 QGeoAreaMonitorInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039
87.81 QGeoAreaMonitorSource Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039
87.82 QGeoCircle Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039
87.83 QGeoCoordinate Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040
87.84 QGeoPositionInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040
87.85 QGeoPositionInfoSource Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
87.86 QGeoRectangle Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
87.87 QGeoSatelliteInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042
87.88 QGeoSatelliteInfoSource Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042
87.89 QGeoShape Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042
87.90 QGradient Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043
87.91 QGraphicsVideoItem Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043
87.92 QGridLayout Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043
87.93 QGuiApplication Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044
87.94 QHBoxLayout Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046
87.95 QHeaderView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046
87.96 QHostAddress Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049
87.97 QHostInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049
87.98 QIODevice Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
87.99 QIcon Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051
87.100QImage Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051
xxv
87.101QInputDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052
87.102QJsonArray Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
87.103QJsonDocument Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
87.104QJsonObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055
87.105QJsonParseError Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055
87.106QJsonValue Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056
87.107QKeySequence Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056
87.108QLCDNumber Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056
87.109QLabel Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
87.110QLayout Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058
87.111QLineEdit Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1059
87.112QLinearGradient Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
87.113QListView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
87.114QListWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062
87.115QListWidgetItem Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063
87.116QMainWindow Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064
87.117QMatrix4x4 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066
87.118QMdiArea Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067
87.119QMdiSubWindow Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068
87.120QMediaObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
87.121QMediaPlayer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
87.122QMediaPlaylist Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1070
87.123QMenu Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1070
87.124QMenuBar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071
87.125QMessageBox Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072
87.126QMimeData Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073
87.127QMutex Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074
87.128QMutexLocker Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074
87.129QNetworkAccessManager Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074
87.130QNetworkProxy Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075
87.131QNetworkReply Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076
87.132QNetworkRequest Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076
87.133QNmeaPositionInfoSource Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077
87.134QObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077
87.135QOpenGLBuffer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078
87.136QOpenGLContext Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078
87.137QOpenGLDebugLogger Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079
87.138QOpenGLFramebufferObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080
87.139QOpenGLFunctions Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080
87.140QOpenGLFunctions_3_2_Core Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085
87.141QOpenGLPaintDevice Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1092
87.142QOpenGLShader Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093
87.143QOpenGLShaderProgram Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093
87.144QOpenGLTexture Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1097
87.145QOpenGLTimerQuery Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099
87.146QOpenGLVersionProfile Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099
87.147QOpenGLVertexArrayObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100
87.148QOpenGLWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100
87.149QPageSetupDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101
87.150QPaintDevice Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101
87.151QPainter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101
87.152QPainter2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104
87.153QPainterPath Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104
87.154QPen Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105
xxvi
87.155QPicture Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106
87.156QPixmap Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106
87.157QPixmap2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108
87.158QPlainTextEdit Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108
87.159QPoint Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110
87.160QPointF Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111
87.161QPrintPreviewDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111
87.162QPrintPreviewWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111
87.163QPrinter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1112
87.164QPrinterInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114
87.165QProcess Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114
87.166QProgressBar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115
87.167QPushButton Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116
87.168QQmlError Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116
87.169QQuaternion Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
87.170QQuickWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
87.171QRadioButton Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118
87.172QRect Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118
87.173QRegion Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1120
87.174QRegularExpression Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121
87.175QRegularExpressionMatch Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121
87.176QRegularExpressionMatchIterator Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122
87.177QScreen Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122
87.178QScrollArea Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123
87.179QScrollBar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124
87.180QSerialPort Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124
87.181QSerialPortInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125
87.182QSize Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126
87.183QSlider Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126
87.184QSpinBox Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126
87.185QSplashScreen Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127
87.186QSplitter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127
87.187QSqlDatabase Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128
87.188QSqlDriver Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
87.189QSqlDriverCreatorBase Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130
87.190QSqlError Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130
87.191QSqlField Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130
87.192QSqlIndex Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131
87.193QSqlQuery Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131
87.194QSqlRecord Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1132
87.195QStackedWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133
87.196QStandardPaths Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134
87.197QStatusBar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134
87.198QString2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134
87.199QStringList Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135
87.200QStringRef Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136
87.201QSurfaceFormat Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138
87.202QSystemTrayIcon Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139
87.203QTabBar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139
87.204QTabWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141
87.205QTableView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142
87.206QTableWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143
87.207QTableWidgetItem Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146
87.208QTcpServer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147
xxvii
87.209QTcpSocket Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148
87.210QTest Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148
87.211QTextBlock Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148
87.212QTextBrowser Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149
87.213QTextCharFormat Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
87.214QTextCodec Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152
87.215QTextCursor Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152
87.216QTextDocument Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154
87.217QTextEdit Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156
87.218QTextStream Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158
87.219QTextStream2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160
87.220QTextStream3 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160
87.221QTextStream4 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160
87.222QTextStream5 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160
87.223QThread Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160
87.224QThreadPool Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161
87.225QTime Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
87.226QTimer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
87.227QToolBar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1163
87.228QToolButton Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1163
87.229QTreeView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164
87.230QTreeWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1166
87.231QTreeWidgetItem Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168
87.232QUrl Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1170
87.233QUuid Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171
87.234QVBoxLayout Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171
87.235QVariant Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171
87.236QVariant2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
87.237QVariant3 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
87.238QVariant4 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
87.239QVariant5 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
87.240QVector2D Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
87.241QVector3D Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174
87.242QVector4D Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175
87.243QVideoWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175
87.244QVideoWidgetControl Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176
87.245QWebEngineView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176
87.246QWebView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177
87.247QWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178
87.248QWindow Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184
87.249QXmlStreamAttribute Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188
87.250QXmlStreamAttributes Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188
87.251QXmlStreamEntityDeclaration Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188
87.252QXmlStreamEntityResolver Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189
87.253QXmlStreamNamespaceDeclaration Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189
87.254QXmlStreamNotationDeclaration Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189
87.255QXmlStreamReader Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189
87.256QXmlStreamWriter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1191
87.257RingCodeHighlighter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1192
88 RingMurmurHash Functions Reference 1193
88.1 MurmurHash1 functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193
88.2 MurmurHash2 functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193
88.3 MurmurHash3 functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193
xxviii

Contenu connexe

Tendances

The Ring programming language version 1.5.1 book - Part 1 of 180
The Ring programming language version 1.5.1 book - Part 1 of 180The Ring programming language version 1.5.1 book - Part 1 of 180
The Ring programming language version 1.5.1 book - Part 1 of 180Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 1 of 212
The Ring programming language version 1.10 book - Part 1 of 212The Ring programming language version 1.10 book - Part 1 of 212
The Ring programming language version 1.10 book - Part 1 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.5.2 book - Part 1 of 181
The Ring programming language version 1.5.2 book - Part 1 of 181The Ring programming language version 1.5.2 book - Part 1 of 181
The Ring programming language version 1.5.2 book - Part 1 of 181Mahmoud Samir Fayed
 
The Ring programming language version 1.8 book - Part 1 of 202
The Ring programming language version 1.8 book - Part 1 of 202The Ring programming language version 1.8 book - Part 1 of 202
The Ring programming language version 1.8 book - Part 1 of 202Mahmoud Samir Fayed
 
The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 1 of 184
The Ring programming language version 1.5.3 book - Part 1 of 184The Ring programming language version 1.5.3 book - Part 1 of 184
The Ring programming language version 1.5.3 book - Part 1 of 184Mahmoud Samir Fayed
 
The Ring programming language version 1.5.4 book - Part 1 of 185
The Ring programming language version 1.5.4 book - Part 1 of 185The Ring programming language version 1.5.4 book - Part 1 of 185
The Ring programming language version 1.5.4 book - Part 1 of 185Mahmoud Samir Fayed
 
Reseaux sans fil dans les pays en developpement
Reseaux sans fil dans les pays en developpementReseaux sans fil dans les pays en developpement
Reseaux sans fil dans les pays en developpementmimanou
 
The Ring programming language version 1.7 book - Part 1 of 196
The Ring programming language version 1.7 book - Part 1 of 196The Ring programming language version 1.7 book - Part 1 of 196
The Ring programming language version 1.7 book - Part 1 of 196Mahmoud Samir Fayed
 
The Ring programming language version 1.6 book - Part 1 of 189
The Ring programming language version 1.6 book - Part 1 of 189The Ring programming language version 1.6 book - Part 1 of 189
The Ring programming language version 1.6 book - Part 1 of 189Mahmoud Samir Fayed
 
initiation-au-langage-c-et-exercices-corriges
initiation-au-langage-c-et-exercices-corrigesinitiation-au-langage-c-et-exercices-corriges
initiation-au-langage-c-et-exercices-corrigesjojo sekkat
 
Deep Learning : Application à la reconnaissance d’objets de classes multiples...
Deep Learning : Application à la reconnaissance d’objets de classes multiples...Deep Learning : Application à la reconnaissance d’objets de classes multiples...
Deep Learning : Application à la reconnaissance d’objets de classes multiples...Haytam EL YOUSSFI
 
Introduction á C-sharp
Introduction á C-sharpIntroduction á C-sharp
Introduction á C-sharpmedfa
 
Tutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael Hartl
Tutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael HartlTutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael Hartl
Tutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael HartlMarc Maurer
 
La base de données Oracle
La base de données OracleLa base de données Oracle
La base de données OracleBruno Delb
 
Object detection and recognition in digital images
Object detection and recognition in digital imagesObject detection and recognition in digital images
Object detection and recognition in digital imagesSakher BELOUADAH
 

Tendances (20)

The Ring programming language version 1.5.1 book - Part 1 of 180
The Ring programming language version 1.5.1 book - Part 1 of 180The Ring programming language version 1.5.1 book - Part 1 of 180
The Ring programming language version 1.5.1 book - Part 1 of 180
 
The Ring programming language version 1.10 book - Part 1 of 212
The Ring programming language version 1.10 book - Part 1 of 212The Ring programming language version 1.10 book - Part 1 of 212
The Ring programming language version 1.10 book - Part 1 of 212
 
The Ring programming language version 1.5.2 book - Part 1 of 181
The Ring programming language version 1.5.2 book - Part 1 of 181The Ring programming language version 1.5.2 book - Part 1 of 181
The Ring programming language version 1.5.2 book - Part 1 of 181
 
The Ring programming language version 1.8 book - Part 1 of 202
The Ring programming language version 1.8 book - Part 1 of 202The Ring programming language version 1.8 book - Part 1 of 202
The Ring programming language version 1.8 book - Part 1 of 202
 
The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210
 
The Ring programming language version 1.5.3 book - Part 1 of 184
The Ring programming language version 1.5.3 book - Part 1 of 184The Ring programming language version 1.5.3 book - Part 1 of 184
The Ring programming language version 1.5.3 book - Part 1 of 184
 
The Ring programming language version 1.5.4 book - Part 1 of 185
The Ring programming language version 1.5.4 book - Part 1 of 185The Ring programming language version 1.5.4 book - Part 1 of 185
The Ring programming language version 1.5.4 book - Part 1 of 185
 
Reseaux sans fil dans les pays en developpement
Reseaux sans fil dans les pays en developpementReseaux sans fil dans les pays en developpement
Reseaux sans fil dans les pays en developpement
 
The Ring programming language version 1.7 book - Part 1 of 196
The Ring programming language version 1.7 book - Part 1 of 196The Ring programming language version 1.7 book - Part 1 of 196
The Ring programming language version 1.7 book - Part 1 of 196
 
Algo
AlgoAlgo
Algo
 
The Ring programming language version 1.6 book - Part 1 of 189
The Ring programming language version 1.6 book - Part 1 of 189The Ring programming language version 1.6 book - Part 1 of 189
The Ring programming language version 1.6 book - Part 1 of 189
 
initiation-au-langage-c-et-exercices-corriges
initiation-au-langage-c-et-exercices-corrigesinitiation-au-langage-c-et-exercices-corriges
initiation-au-langage-c-et-exercices-corriges
 
19
1919
19
 
Programmation en-java-api
Programmation en-java-apiProgrammation en-java-api
Programmation en-java-api
 
Deep Learning : Application à la reconnaissance d’objets de classes multiples...
Deep Learning : Application à la reconnaissance d’objets de classes multiples...Deep Learning : Application à la reconnaissance d’objets de classes multiples...
Deep Learning : Application à la reconnaissance d’objets de classes multiples...
 
Introduction á C-sharp
Introduction á C-sharpIntroduction á C-sharp
Introduction á C-sharp
 
Tutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael Hartl
Tutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael HartlTutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael Hartl
Tutoriel Ruby on Rails : apprendre Rails par l'exemple de Michael Hartl
 
La base de données Oracle
La base de données OracleLa base de données Oracle
La base de données Oracle
 
Oracle 11g exploitation
Oracle 11g exploitationOracle 11g exploitation
Oracle 11g exploitation
 
Object detection and recognition in digital images
Object detection and recognition in digital imagesObject detection and recognition in digital images
Object detection and recognition in digital images
 

Similaire à The Ring programming language version 1.9 book - Part 3 of 210

Base-de-données.pdf
Base-de-données.pdfBase-de-données.pdf
Base-de-données.pdfdjallel2
 
Lavorare con java 6
Lavorare con java 6Lavorare con java 6
Lavorare con java 6Pi Libri
 
Manuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEMManuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEMGrégoire Dupont
 
Ibm spectrum archive enterprise edition
Ibm spectrum archive enterprise editionIbm spectrum archive enterprise edition
Ibm spectrum archive enterprise editionLuciano Saia
 
notes-de-cours-de-fouille-de-donnees.pdf
notes-de-cours-de-fouille-de-donnees.pdfnotes-de-cours-de-fouille-de-donnees.pdf
notes-de-cours-de-fouille-de-donnees.pdfCoulibalyYoussoufngo
 
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...Amed So
 
The Ring programming language version 1.5.1 book - Part 2 of 180
The Ring programming language version 1.5.1 book - Part 2 of 180The Ring programming language version 1.5.1 book - Part 2 of 180
The Ring programming language version 1.5.1 book - Part 2 of 180Mahmoud Samir Fayed
 
The Ring programming language version 1.5.2 book - Part 2 of 181
The Ring programming language version 1.5.2 book - Part 2 of 181The Ring programming language version 1.5.2 book - Part 2 of 181
The Ring programming language version 1.5.2 book - Part 2 of 181Mahmoud Samir Fayed
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...mouafekmazia
 
The Ring programming language version 1.6 book - Part 2 of 189
The Ring programming language version 1.6 book - Part 2 of 189The Ring programming language version 1.6 book - Part 2 of 189
The Ring programming language version 1.6 book - Part 2 of 189Mahmoud Samir Fayed
 
courspython3.pdf
courspython3.pdfcourspython3.pdf
courspython3.pdfDendouga1
 
Excel 2010 - Fonctions et formules
Excel 2010 - Fonctions et formulesExcel 2010 - Fonctions et formules
Excel 2010 - Fonctions et formulesClaudio Montoni
 
The Ring programming language version 1.5.4 book - Part 2 of 185
The Ring programming language version 1.5.4 book - Part 2 of 185The Ring programming language version 1.5.4 book - Part 2 of 185
The Ring programming language version 1.5.4 book - Part 2 of 185Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 2 of 184
The Ring programming language version 1.5.3 book - Part 2 of 184The Ring programming language version 1.5.3 book - Part 2 of 184
The Ring programming language version 1.5.3 book - Part 2 of 184Mahmoud Samir Fayed
 

Similaire à The Ring programming language version 1.9 book - Part 3 of 210 (19)

Base-de-données.pdf
Base-de-données.pdfBase-de-données.pdf
Base-de-données.pdf
 
cours_python.pdf
cours_python.pdfcours_python.pdf
cours_python.pdf
 
Lavorare con java 6
Lavorare con java 6Lavorare con java 6
Lavorare con java 6
 
Tp sgbd gsi
Tp sgbd gsiTp sgbd gsi
Tp sgbd gsi
 
Manuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEMManuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEM
 
Ibm spectrum archive enterprise edition
Ibm spectrum archive enterprise editionIbm spectrum archive enterprise edition
Ibm spectrum archive enterprise edition
 
notes-de-cours-de-fouille-de-donnees.pdf
notes-de-cours-de-fouille-de-donnees.pdfnotes-de-cours-de-fouille-de-donnees.pdf
notes-de-cours-de-fouille-de-donnees.pdf
 
Cbdsys 2
Cbdsys 2Cbdsys 2
Cbdsys 2
 
Twido guide de programmation
Twido guide de programmationTwido guide de programmation
Twido guide de programmation
 
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
 
The Ring programming language version 1.5.1 book - Part 2 of 180
The Ring programming language version 1.5.1 book - Part 2 of 180The Ring programming language version 1.5.1 book - Part 2 of 180
The Ring programming language version 1.5.1 book - Part 2 of 180
 
The Ring programming language version 1.5.2 book - Part 2 of 181
The Ring programming language version 1.5.2 book - Part 2 of 181The Ring programming language version 1.5.2 book - Part 2 of 181
The Ring programming language version 1.5.2 book - Part 2 of 181
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
 
The Ring programming language version 1.6 book - Part 2 of 189
The Ring programming language version 1.6 book - Part 2 of 189The Ring programming language version 1.6 book - Part 2 of 189
The Ring programming language version 1.6 book - Part 2 of 189
 
courspython3.pdf
courspython3.pdfcourspython3.pdf
courspython3.pdf
 
Excel 2010 - Fonctions et formules
Excel 2010 - Fonctions et formulesExcel 2010 - Fonctions et formules
Excel 2010 - Fonctions et formules
 
Excel2010.guide.complet
Excel2010.guide.completExcel2010.guide.complet
Excel2010.guide.complet
 
The Ring programming language version 1.5.4 book - Part 2 of 185
The Ring programming language version 1.5.4 book - Part 2 of 185The Ring programming language version 1.5.4 book - Part 2 of 185
The Ring programming language version 1.5.4 book - Part 2 of 185
 
The Ring programming language version 1.5.3 book - Part 2 of 184
The Ring programming language version 1.5.3 book - Part 2 of 184The Ring programming language version 1.5.3 book - Part 2 of 184
The Ring programming language version 1.5.3 book - Part 2 of 184
 

Plus de Mahmoud Samir Fayed

The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 212 of 212The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 212 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 211 of 212The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 211 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 210 of 212The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 210 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 208 of 212The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 208 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 207 of 212The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 207 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 205 of 212The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 205 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 206 of 212The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 206 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 204 of 212The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 204 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 203 of 212The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 203 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 202 of 212The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 202 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 201 of 212The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 201 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 200 of 212The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 200 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 199 of 212The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 199 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 198 of 212The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 198 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 197 of 212The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 197 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 196 of 212The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 196 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 195 of 212The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 195 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 194 of 212The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 194 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 193 of 212The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 193 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 192 of 212The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 192 of 212Mahmoud Samir Fayed
 

Plus de Mahmoud Samir Fayed (20)

The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 212 of 212The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 212 of 212
 
The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 211 of 212The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 211 of 212
 
The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 210 of 212The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 210 of 212
 
The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 208 of 212The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 208 of 212
 
The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 207 of 212The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 207 of 212
 
The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 205 of 212The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 205 of 212
 
The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 206 of 212The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 206 of 212
 
The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 204 of 212The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 204 of 212
 
The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 203 of 212The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 203 of 212
 
The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 202 of 212The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 202 of 212
 
The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 201 of 212The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 201 of 212
 
The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 200 of 212The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 200 of 212
 
The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 199 of 212The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 199 of 212
 
The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 198 of 212The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 198 of 212
 
The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 197 of 212The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 197 of 212
 
The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 196 of 212The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 196 of 212
 
The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 195 of 212The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 195 of 212
 
The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 194 of 212The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 194 of 212
 
The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 193 of 212The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 193 of 212
 
The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 192 of 212The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 192 of 212
 

The Ring programming language version 1.9 book - Part 3 of 210

  • 1. 67 Using the Form Designer 784 67.1 The Designer Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785 67.2 The Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785 67.3 The Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785 67.4 Running Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786 67.5 Events Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786 67.6 Keyboard Shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789 67.7 Menubar Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789 67.8 Window Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790 67.9 Entering Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791 67.10 Using Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791 67.11 More Samples and Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791 68 Multi-language Applications 792 68.1 Using String2Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792 68.2 Form Designer Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793 68.3 Forms Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794 69 Scope Rules for Variables and Attributes 796 69.1 Three Scopes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796 69.2 Defining Variables and Variables Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796 69.3 How Ring find the variable? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797 69.4 Using Object.Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797 69.5 The Self Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797 69.6 How Ring Define Variables and Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798 69.7 Conflict between Global Variables and Class Attributes . . . . . . . . . . . . . . . . . . . . . . . . . 798 69.8 Conflict between Class Attributes and Local Variables . . . . . . . . . . . . . . . . . . . . . . . . . 799 69.9 Using Braces to access objects inside Class Methods . . . . . . . . . . . . . . . . . . . . . . . . . . 800 69.10 Accessing the class attributes from braces inside class methods . . . . . . . . . . . . . . . . . . . . 803 69.11 Creating a Class for each Window in GUI applications . . . . . . . . . . . . . . . . . . . . . . . . . 804 69.12 Conflict between self inside braces and self in the class region . . . . . . . . . . . . . . . . . . . . . 805 69.13 Using braces to escape from the current object scope . . . . . . . . . . . . . . . . . . . . . . . . . . 808 69.14 The For Loops uses the local scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 69.15 Summary of Scope Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 70 Scope Rules for Functions and Methods 812 70.1 How Ring find the Functions and Methods? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812 70.2 Example about Sharing Names between Functions and Methods . . . . . . . . . . . . . . . . . . . . 813 70.3 Calling a function sharing the name with a method in the current class . . . . . . . . . . . . . . . . . 814 71 Syntax Flexibility 816 71.1 Change Language Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816 71.2 Change Language Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817 71.3 Load Syntax Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818 71.4 Using “()” around the function parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819 71.5 Using Semi-colon after and between statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819 71.6 Using $ and @ in the start of the variable name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820 71.7 Using the ‘elseif’ keyword as ‘but’ in if statement . . . . . . . . . . . . . . . . . . . . . . . . . . . 820 71.8 Using the ‘else’ keyword as ‘other’ in switch statement . . . . . . . . . . . . . . . . . . . . . . . . . 821 71.9 Using the ‘end’ keyword in different control structures . . . . . . . . . . . . . . . . . . . . . . . . . 821 71.10 Using braces to start and end different control structures . . . . . . . . . . . . . . . . . . . . . . . . 822 71.11 Using ‘put’ and ‘get’ as ‘see’ and ‘give’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823 71.12 Using ‘case’ as ‘on’ in switch statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823 71.13 Using ‘def’ as ‘func’ in functions/methods definition . . . . . . . . . . . . . . . . . . . . . . . . . . 824 71.14 Using braces { } in Packages/Classes/Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824 xix
  • 2. 71.15 Using ‘end’ keyword after Packages/Classes/Functions . . . . . . . . . . . . . . . . . . . . . . . . . 824 71.16 Using ‘endpackage’/’endclass’/’endfunc’ keywords after Packages/Classes/Functions . . . . . . . . 825 71.17 Ignore new lines after keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825 72 Introduction to the Type Hints Library 826 72.1 Why Type Hints? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826 72.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826 72.3 User Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826 72.4 Using Types inside Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827 72.5 Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827 73 Command Line Options 829 73.1 Printing Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829 73.2 Printing Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831 73.3 Printing Intermediate Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835 73.4 Printing Final Intermediate Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838 73.5 CGI Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842 73.6 No Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842 73.7 Printing Instruction Operation Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842 73.8 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842 73.9 Generate Object File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843 74 Performance Tips 844 74.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844 74.2 Creating Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846 74.3 Arithmetic Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847 74.4 Using len() and For Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847 74.5 Calling Functions and Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848 75 Distributing Ring Applications 850 75.1 Distributing Applications for Microsoft Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850 75.2 Protecting the Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850 75.3 The files ring.ring and ring.ringo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851 75.4 Creating Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851 75.5 Using C/C++ Compiler and Linker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851 75.6 Distributing Applications and Games for Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851 76 Distributing Ring Applications using Ring2EXE 852 76.1 Using Ring2EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852 76.2 How Ring2EXE works? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852 76.3 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853 76.4 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853 76.5 Building standalone console application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854 76.6 Distributing RingAllegro Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854 76.7 Distributing RingQt Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855 76.8 Distributing Applications for Mobile using RingQt . . . . . . . . . . . . . . . . . . . . . . . . . . . 855 76.9 Building the Cards Game for Mobile using RingQt . . . . . . . . . . . . . . . . . . . . . . . . . . . 856 76.10 Building the Weight History Application for Mobile using RingQt . . . . . . . . . . . . . . . . . . . 856 76.11 Building the Form Designer for Mobile using RingQt . . . . . . . . . . . . . . . . . . . . . . . . . 857 76.12 Creating the Qt resource file using Folder2qrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859 76.13 Important Information about Ring2EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859 77 Low Level Functions 861 77.1 callgc() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862 77.2 varptr() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862 xx
  • 3. 77.3 space() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863 77.4 nullpointer() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863 77.5 object2pointer() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863 77.6 pointer2object() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864 77.7 ispointer() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864 77.8 ptrcmp() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865 77.9 ringvm_cfunctionslist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865 77.10 ringvm_functionslist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865 77.11 ringvm_classeslist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866 77.12 ringvm_packageslist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867 77.13 ringvm_memorylist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868 77.14 ringvm_calllist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870 77.15 ringvm_fileslist() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870 77.16 ringvm_settrace() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871 77.17 ringvm_tracedata() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871 77.18 ringvm_traceevent() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872 77.19 ringvm_tracefunc() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872 77.20 ringvm_scopescount() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872 77.21 ringvm_evalinscope() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873 77.22 ringvm_passerror() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873 77.23 ringvm_hideerrormsg() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873 77.24 ringvm_callfunc() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873 77.25 Example - Using the Trace Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873 77.26 Example - The Trace Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877 77.27 ringvm_see() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881 77.28 ringvm_give() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881 77.29 ringvm_info() function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881 78 The Trace Library and the Interactive Debugger 883 78.1 Loading the Trace library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883 78.2 Trace All Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883 78.3 Trace control flow between functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883 78.4 Pass Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884 78.5 Interactive Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884 78.6 Execute Program Line by Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884 78.7 BreakPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885 78.8 Disable BreakPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885 78.9 Using the Interactive Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885 79 Embedding Ring in Ring 888 79.1 Embedding Ring in Ring without sharing the State . . . . . . . . . . . . . . . . . . . . . . . . . . . 888 79.2 Serial Execution of Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889 79.3 ring_state_setvar() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889 79.4 ring_state_new() and ring_state_mainfile() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890 79.5 Runtime Errors when Embedding Ring in Ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891 80 Extension using the C/C++ languages 892 80.1 ring_ext.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892 80.2 ring_ext.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892 80.3 Module Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893 80.4 Function Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894 80.5 Check Parameters Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894 80.6 Display Error Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895 80.7 Check Parameters Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895 xxi
  • 4. 80.8 Get Parameters Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895 80.9 Return Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896 80.10 Function Prototype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896 80.11 Sin() Function Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896 80.12 Fopen() and Fclose() Functions Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896 80.13 Ring API - List Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897 80.14 Ring API - String Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899 80.15 MySQL_Columns() Function Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899 80.16 Dynamic/Shared Libraries (DLL/So/Dylib) and LoadLib() function . . . . . . . . . . . . . . . . . . 900 80.17 Using RING_API_RETMANAGEDCPOINTER() . . . . . . . . . . . . . . . . . . . . . . . . . . . 901 81 Embedding Ring Language in C/C++ Programs 903 81.1 Ring State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903 81.2 Ring State Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903 81.3 Ring State Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904 82 Code Generator for wrapping C/C++ Libraries 906 82.1 Using the tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906 82.2 Configuration file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906 82.3 Using the function prototype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906 82.4 Adding code to the generated code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908 82.5 Prefix for Functions Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908 82.6 Generate function to wrap structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908 82.7 Determine Structure Members Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909 82.8 Defining Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909 82.9 Register New Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909 82.10 Writing comments in the configuration file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910 82.11 Executing code during code generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910 82.12 Enum and Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910 82.13 Filtering using Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911 82.14 Constants Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911 82.15 Configuration file for the Allegro Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911 82.16 Threads Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913 82.17 Code Generator Rules for Wrapping C++ Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914 82.18 Using configuration file that wrap C++ Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915 82.19 Configuration file for the Qt Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915 82.20 Static Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925 82.21 Loading Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925 82.22 Managed Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925 82.23 Configuration Files Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926 83 Create your first extension 927 83.1 Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927 83.2 Steps to create the extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927 83.3 Testing the extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928 84 Frequently Asked Questions (FAQ) 929 84.1 Why do we need Yet Another Programming Language (YAPL)? . . . . . . . . . . . . . . . . . . . . 929 84.2 Why is Ring weakly typed? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930 84.3 What are the advantages to using Ring over Lisp or Smalltalk? . . . . . . . . . . . . . . . . . . . . . 930 84.4 Why is Ring largely focussed on UI creation? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931 84.5 Is Ring some sort of an improvement of PHP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931 84.6 What are the advantages of using Ring over native C or C++? . . . . . . . . . . . . . . . . . . . . . 931 84.7 What is the difference between Ring and Python? And is Ring Open Source? . . . . . . . . . . . . . 931 84.8 What are the advantages to using Ring over Perl, PHP, Python or Ruby? . . . . . . . . . . . . . . . . 932 xxii
  • 5. 84.9 What are the advantages to using Ring over Tcl or Lua? . . . . . . . . . . . . . . . . . . . . . . . . 933 84.10 What are the advantages to using Ring over C# or Java? . . . . . . . . . . . . . . . . . . . . . . . . 933 84.11 The documentation says functional programming is supported, but then this happens? . . . . . . . . 933 84.12 Why the ability to define your own languages Instead of just handing over the syntax so you can parse it using whatever code you like? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934 84.13 Why you can specify the number of loops you want to break out of? . . . . . . . . . . . . . . . . . . 934 84.14 Why Ring uses ‘See’, ‘Give’, ‘But’ and ‘Ok’ Keywords? . . . . . . . . . . . . . . . . . . . . . . . . 934 84.15 What is the philosophy behind data types in Ring? . . . . . . . . . . . . . . . . . . . . . . . . . . . 935 84.16 What about the Boolean values in Ring? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935 84.17 What is the goal of including the “Main” function in Ring? . . . . . . . . . . . . . . . . . . . . . . . 936 84.18 Why the list index start from 1 in Ring? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937 84.19 Why Ring is not case-sensitive? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937 84.20 Why the Assignment operator uses Deep Copy? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938 84.21 Is there constructor methods in Ring? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939 84.22 What happens when we create a new object? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939 84.23 Can we use the attributes by accessing the Getter and Setter methods? . . . . . . . . . . . . . . . . . 940 84.24 Why should a search of global names be made while defining the class attributes? . . . . . . . . . . 941 84.25 Why Ring doesn’t avoid the conflict between Global Variables and Class Attributes Names? . . . . . 942 84.26 Where can I write a program and execute it? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943 84.27 How to get the file size using ftell() and fseek() functions? . . . . . . . . . . . . . . . . . . . . . . . 943 84.28 How to get the current source file path? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943 84.29 What about predefined parameters or optional parameters in functions? . . . . . . . . . . . . . . . . 943 84.30 How to print keys or values only in List/Dictionary? . . . . . . . . . . . . . . . . . . . . . . . . . . 944 84.31 Why I get a strange result when printing nl with lists? . . . . . . . . . . . . . . . . . . . . . . . . . 944 84.32 Could you explain the output of the StrCmp() function? . . . . . . . . . . . . . . . . . . . . . . . . 945 84.33 How to use many source code files in the project? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945 84.34 Why this example use the GetChar() twice? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946 84.35 How to use NULL and ISNULL() function? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947 84.36 How to print lists that contains objects? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948 84.37 How to insert an item to the first position in the list? . . . . . . . . . . . . . . . . . . . . . . . . . . 949 84.38 How to print new lines and other characters? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949 84.39 Why we don’t use () after the qApp class name? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949 84.40 Why the window title bar is going outside the screen? . . . . . . . . . . . . . . . . . . . . . . . . . 950 84.41 How to create an array of buttons in GUI applications? . . . . . . . . . . . . . . . . . . . . . . . . . 950 84.42 How to Close a window then displaying another one? . . . . . . . . . . . . . . . . . . . . . . . . . . 951 84.43 How to create a Modal Window? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951 84.44 How can I disable maximize button and resize window? . . . . . . . . . . . . . . . . . . . . . . . . 952 84.45 How to use SQLite using ODBC? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953 84.46 Can I connect to dbase/harbour database? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954 84.47 Why setClickEvent() doesn’t see the object methods directly? . . . . . . . . . . . . . . . . . . . . . 955 84.48 Why I get Calling Function without definition Error? . . . . . . . . . . . . . . . . . . . . . . . . . . 955 84.49 Can Ring work on Windows XP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956 84.50 How to extend RingQt and add more classes? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956 84.51 How to add Combobox and other elements to the cells of a QTableWidget? . . . . . . . . . . . . . . 959 84.52 How to perform some manipulations on selected cells in QTableWidget? . . . . . . . . . . . . . . . 959 84.53 Which of 3 coding styles are commonly used or recommended by the community? . . . . . . . . . . 960 85 General Information 961 85.1 Ring Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961 85.2 Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961 85.3 Data Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962 86 Language Reference 965 86.1 Language Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965 xxiii
  • 6. 86.2 Language Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967 86.3 Compiler Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968 86.4 Runtime Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968 86.5 Environment Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 970 86.6 Language Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 970 86.7 Virtual Machine (VM) Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971 87 RingQt Classes Reference 978 87.1 CodeEditor Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978 87.2 QAbstractButton Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978 87.3 QAbstractItemView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979 87.4 QAbstractPrintDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981 87.5 QAbstractScrollArea Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981 87.6 QAbstractSlider Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982 87.7 QAbstractSocket Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983 87.8 QAbstractSpinBox Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984 87.9 QAction Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985 87.10 QAllEvents Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 987 87.11 QApp Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991 87.12 QAxBase Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991 87.13 QAxObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993 87.14 QAxWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993 87.15 QBitmap Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993 87.16 QBluetoothAddress Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993 87.17 QBluetoothDeviceDiscoveryAgent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994 87.18 QBluetoothDeviceInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994 87.19 QBluetoothHostInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995 87.20 QBluetoothLocalDevice Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995 87.21 QBluetoothServer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996 87.22 QBluetoothServiceDiscoveryAgent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996 87.23 QBluetoothServiceInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 87.24 QBluetoothSocket Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998 87.25 QBluetoothTransferManager Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999 87.26 QBluetoothTransferReply Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999 87.27 QBluetoothTransferRequest Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999 87.28 QBluetoothUuid Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000 87.29 QBoxLayout Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000 87.30 QBrush Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001 87.31 QBuffer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001 87.32 QButtonGroup Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001 87.33 QByteArray Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002 87.34 QCalendarWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 87.35 QCamera Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005 87.36 QCameraImageCapture Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006 87.37 QCameraViewfinder Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007 87.38 QChar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007 87.39 QCheckBox Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009 87.40 QChildEvent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010 87.41 QClipboard Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010 87.42 QColor Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010 87.43 QColorDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013 87.44 QComboBox Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013 87.45 QCompleter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015 87.46 QCompleter2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016 xxiv
  • 7. 87.47 QCompleter3 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016 87.48 QCoreApplication Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016 87.49 QCursor Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018 87.50 QDate Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018 87.51 QDateEdit Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019 87.52 QDateTime Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019 87.53 QDateTimeEdit Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020 87.54 QDesktopServices Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021 87.55 QDesktopWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022 87.56 QDial Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022 87.57 QDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023 87.58 QDir Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023 87.59 QDirModel Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025 87.60 QDockWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026 87.61 QDrag Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 87.62 QDragEnterEvent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 87.63 QDragLeaveEvent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 87.64 QDragMoveEvent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028 87.65 QDropEvent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028 87.66 QEvent Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028 87.67 QFile Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029 87.68 QFile2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029 87.69 QFileDevice Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030 87.70 QFileDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030 87.71 QFileInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031 87.72 QFileSystemModel Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033 87.73 QFont Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034 87.74 QFontDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036 87.75 QFontMetrics Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036 87.76 QFrame Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1037 87.77 QFrame2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038 87.78 QFrame3 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038 87.79 QGeoAddress Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038 87.80 QGeoAreaMonitorInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 87.81 QGeoAreaMonitorSource Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 87.82 QGeoCircle Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 87.83 QGeoCoordinate Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040 87.84 QGeoPositionInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040 87.85 QGeoPositionInfoSource Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041 87.86 QGeoRectangle Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041 87.87 QGeoSatelliteInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042 87.88 QGeoSatelliteInfoSource Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042 87.89 QGeoShape Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042 87.90 QGradient Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043 87.91 QGraphicsVideoItem Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043 87.92 QGridLayout Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043 87.93 QGuiApplication Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044 87.94 QHBoxLayout Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046 87.95 QHeaderView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046 87.96 QHostAddress Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049 87.97 QHostInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049 87.98 QIODevice Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050 87.99 QIcon Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051 87.100QImage Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051 xxv
  • 8. 87.101QInputDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052 87.102QJsonArray Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054 87.103QJsonDocument Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054 87.104QJsonObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055 87.105QJsonParseError Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055 87.106QJsonValue Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 87.107QKeySequence Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 87.108QLCDNumber Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 87.109QLabel Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057 87.110QLayout Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058 87.111QLineEdit Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1059 87.112QLinearGradient Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061 87.113QListView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061 87.114QListWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062 87.115QListWidgetItem Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063 87.116QMainWindow Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064 87.117QMatrix4x4 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066 87.118QMdiArea Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067 87.119QMdiSubWindow Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068 87.120QMediaObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069 87.121QMediaPlayer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069 87.122QMediaPlaylist Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1070 87.123QMenu Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1070 87.124QMenuBar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071 87.125QMessageBox Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072 87.126QMimeData Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073 87.127QMutex Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074 87.128QMutexLocker Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074 87.129QNetworkAccessManager Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074 87.130QNetworkProxy Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075 87.131QNetworkReply Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076 87.132QNetworkRequest Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076 87.133QNmeaPositionInfoSource Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077 87.134QObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077 87.135QOpenGLBuffer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078 87.136QOpenGLContext Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078 87.137QOpenGLDebugLogger Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079 87.138QOpenGLFramebufferObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080 87.139QOpenGLFunctions Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080 87.140QOpenGLFunctions_3_2_Core Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085 87.141QOpenGLPaintDevice Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1092 87.142QOpenGLShader Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093 87.143QOpenGLShaderProgram Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093 87.144QOpenGLTexture Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1097 87.145QOpenGLTimerQuery Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099 87.146QOpenGLVersionProfile Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099 87.147QOpenGLVertexArrayObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100 87.148QOpenGLWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100 87.149QPageSetupDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101 87.150QPaintDevice Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101 87.151QPainter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101 87.152QPainter2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104 87.153QPainterPath Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104 87.154QPen Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105 xxvi
  • 9. 87.155QPicture Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106 87.156QPixmap Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106 87.157QPixmap2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108 87.158QPlainTextEdit Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108 87.159QPoint Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110 87.160QPointF Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111 87.161QPrintPreviewDialog Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111 87.162QPrintPreviewWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111 87.163QPrinter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1112 87.164QPrinterInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114 87.165QProcess Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114 87.166QProgressBar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115 87.167QPushButton Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116 87.168QQmlError Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116 87.169QQuaternion Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117 87.170QQuickWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117 87.171QRadioButton Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118 87.172QRect Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118 87.173QRegion Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1120 87.174QRegularExpression Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121 87.175QRegularExpressionMatch Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121 87.176QRegularExpressionMatchIterator Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122 87.177QScreen Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122 87.178QScrollArea Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123 87.179QScrollBar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124 87.180QSerialPort Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124 87.181QSerialPortInfo Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125 87.182QSize Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126 87.183QSlider Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126 87.184QSpinBox Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126 87.185QSplashScreen Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127 87.186QSplitter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127 87.187QSqlDatabase Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128 87.188QSqlDriver Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129 87.189QSqlDriverCreatorBase Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130 87.190QSqlError Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130 87.191QSqlField Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130 87.192QSqlIndex Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131 87.193QSqlQuery Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131 87.194QSqlRecord Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1132 87.195QStackedWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133 87.196QStandardPaths Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134 87.197QStatusBar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134 87.198QString2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134 87.199QStringList Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135 87.200QStringRef Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136 87.201QSurfaceFormat Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138 87.202QSystemTrayIcon Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139 87.203QTabBar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139 87.204QTabWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141 87.205QTableView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142 87.206QTableWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143 87.207QTableWidgetItem Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146 87.208QTcpServer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147 xxvii
  • 10. 87.209QTcpSocket Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148 87.210QTest Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148 87.211QTextBlock Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148 87.212QTextBrowser Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149 87.213QTextCharFormat Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150 87.214QTextCodec Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152 87.215QTextCursor Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152 87.216QTextDocument Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154 87.217QTextEdit Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156 87.218QTextStream Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158 87.219QTextStream2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160 87.220QTextStream3 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160 87.221QTextStream4 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160 87.222QTextStream5 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160 87.223QThread Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160 87.224QThreadPool Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161 87.225QTime Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162 87.226QTimer Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162 87.227QToolBar Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1163 87.228QToolButton Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1163 87.229QTreeView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164 87.230QTreeWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1166 87.231QTreeWidgetItem Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168 87.232QUrl Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1170 87.233QUuid Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171 87.234QVBoxLayout Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171 87.235QVariant Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171 87.236QVariant2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173 87.237QVariant3 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173 87.238QVariant4 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173 87.239QVariant5 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173 87.240QVector2D Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173 87.241QVector3D Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174 87.242QVector4D Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175 87.243QVideoWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175 87.244QVideoWidgetControl Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176 87.245QWebEngineView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176 87.246QWebView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177 87.247QWidget Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 87.248QWindow Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184 87.249QXmlStreamAttribute Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188 87.250QXmlStreamAttributes Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188 87.251QXmlStreamEntityDeclaration Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188 87.252QXmlStreamEntityResolver Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189 87.253QXmlStreamNamespaceDeclaration Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189 87.254QXmlStreamNotationDeclaration Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189 87.255QXmlStreamReader Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189 87.256QXmlStreamWriter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1191 87.257RingCodeHighlighter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1192 88 RingMurmurHash Functions Reference 1193 88.1 MurmurHash1 functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 88.2 MurmurHash2 functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 88.3 MurmurHash3 functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 xxviii